Git 我当前正在合并哪些提交?

Git 我当前正在合并哪些提交?,git,git-merge,Git,Git Merge,当我执行git merge时,还没有创建新的提交(因为冲突或--no commit选项),如何检查我正在合并的分支 git status仅显示当前分支。由于冲突而停止的git merge会留下两个1文件,其中包含有关合并内容的信息: .git/MERGE_HEAD .git/MERGE_MSG (如果需要,例如,如果您位于git目录中的子目录中,则将.git替换为git rev parse--git dir的输出)。MERGE\u HEAD的内容是另一个SHA-1,即使您正在按名称合并分支;2

当我执行
git merge
时,还没有创建新的提交(因为冲突或
--no commit
选项),如何检查我正在合并的分支


git status
仅显示当前分支。

由于冲突而停止的
git merge
会留下两个1文件,其中包含有关合并内容的信息:

.git/MERGE_HEAD
.git/MERGE_MSG
(如果需要,例如,如果您位于git目录中的子目录中,则将
.git
替换为
git rev parse--git dir
的输出)。
MERGE\u HEAD
的内容是另一个SHA-1,即使您正在按名称合并分支;2但是
MERGE\u MSG
的内容包含分支名称(如果有)。例如:

$ git merge --no-commit origin/master
Automatic merge went well; stopped before committing as requested
$ cat .git/MERGE_HEAD
d1574b852963482d4b482992ad6343691082412f
$ cat .git/MERGE_MSG
Merge remote-tracking branch 'origin/master'
(由于没有冲突,我不得不在这里使用
--no commit

(如果两个文件中都没有分支名称,但
MERGE\u HEAD
文件的SHA-1与某些现有分支提示匹配,则对于许多或大多数目的来说,这将是一个合适的分支名称。如果它与多个分支提示匹配,即,如果单个提交是多个当前分支名称的提示,则其中任何一个都可能是合适的。)


1有一个第三文件,<代码> .git/MelgyMydio,它告诉Git你首先处于一个合并的中间。但它通常是空的


2您可以通过原始SHA-1或任何其他方式进行合并,以指定提交。不要求合并来自另一个分支。因此,在进行新的合并提交时,您也可以处于“分离头”模式,因此不需要将合并合并合并到命名分支中。

有一个简单的一行程序可以找到这一点,即使您位于子目录和/或由
git worktree
命令创建的git worktree中,它也可以工作:

git rev-parse MERGE_HEAD
我发现
git日志--oneline--left-right--merge
也很有用