Git:查找(未来)parent 正在进行的合并
Git : Find (future) parent of ongoing merge
我有一个正在进行的合并,但我没有完成 - 存储库仍处于 "MERGING" 状态,MERGE_HEAD 文件存在。我现在不知道我正在尝试合并哪些修订版 - 好吧,通过 git log
我知道我所在的修订版和分支的名称,所以我知道 parent - 但是这是另一个(未来)parent 我失踪了。
当然,我的控制台中的命令历史记录还不足以包含我使用的 git merge
命令 - 它早已被遗忘。
git status
只告诉我:"All conflicts fixed but you are still merging.".
摆脱状态"All conflicts fixed but you are still merging."有git merge --continue
要中止当前的合并(以及 return 到您所谓的(未来)父级),您可以使用 git merge --abort
。这总是一个不错的选择,因为您可以重新开始
要查看合并前您的存储库发生了什么,请使用 git reflog
每一行都是 git 为您执行的一个步骤:
Haass@LAPTOP-ETDGT1PT MINGW64 /c/devel/inventory (master)
$ git reflog
398e725 (HEAD -> master, upstream/master) HEAD@{0}: reset: moving to upstream/master
8700bfd (origin/master, origin/HEAD) HEAD@{1}: checkout: moving from 398e72552f3300d0389426b17feae6543305156f to master
398e725 (HEAD -> master, upstream/master) HEAD@{2}: checkout: moving from master to upstream/master
8700bfd (origin/master, origin/HEAD) HEAD@{3}: rebase finished: returning to refs/heads/master
8700bfd (origin/master, origin/HEAD) HEAD@{4}: rebase: checkout refs/remotes/origin/master
be73d62 HEAD@{5}: reset: moving to HEAD
看起来像这样。在合并之前总是有一个结帐,所以从上到下找到第一个结帐。第一列是可用于结帐的 git 散列。
在这种情况下,我喜欢 git tag
我的步骤,这样当我在某些 git 操作中迷路时,我可以 return 到任何中间步骤
您可以使用
git log --merge -p
显示所有正在合并的分支中不常见的提交差异 (source)。您可以看到分支指向的最后一次提交的提交 SHA。
编辑:您还可以打印要合并的提交标识符
cat .git/MERGE_HEAD
MERGE_HEAD 文件包含明明白白的答案。事实上,它只包含那个。
如果有任何 git 命令可以从控制台显示其内容,我很乐意知道并会分发积分。
我有一个正在进行的合并,但我没有完成 - 存储库仍处于 "MERGING" 状态,MERGE_HEAD 文件存在。我现在不知道我正在尝试合并哪些修订版 - 好吧,通过 git log
我知道我所在的修订版和分支的名称,所以我知道 parent - 但是这是另一个(未来)parent 我失踪了。
当然,我的控制台中的命令历史记录还不足以包含我使用的 git merge
命令 - 它早已被遗忘。
git status
只告诉我:"All conflicts fixed but you are still merging.".
摆脱状态"All conflicts fixed but you are still merging."有git merge --continue
要中止当前的合并(以及 return 到您所谓的(未来)父级),您可以使用 git merge --abort
。这总是一个不错的选择,因为您可以重新开始
要查看合并前您的存储库发生了什么,请使用 git reflog
每一行都是 git 为您执行的一个步骤:
Haass@LAPTOP-ETDGT1PT MINGW64 /c/devel/inventory (master)
$ git reflog
398e725 (HEAD -> master, upstream/master) HEAD@{0}: reset: moving to upstream/master
8700bfd (origin/master, origin/HEAD) HEAD@{1}: checkout: moving from 398e72552f3300d0389426b17feae6543305156f to master
398e725 (HEAD -> master, upstream/master) HEAD@{2}: checkout: moving from master to upstream/master
8700bfd (origin/master, origin/HEAD) HEAD@{3}: rebase finished: returning to refs/heads/master
8700bfd (origin/master, origin/HEAD) HEAD@{4}: rebase: checkout refs/remotes/origin/master
be73d62 HEAD@{5}: reset: moving to HEAD
看起来像这样。在合并之前总是有一个结帐,所以从上到下找到第一个结帐。第一列是可用于结帐的 git 散列。
在这种情况下,我喜欢 git tag
我的步骤,这样当我在某些 git 操作中迷路时,我可以 return 到任何中间步骤
您可以使用
git log --merge -p
显示所有正在合并的分支中不常见的提交差异 (source)。您可以看到分支指向的最后一次提交的提交 SHA。
编辑:您还可以打印要合并的提交标识符
cat .git/MERGE_HEAD
MERGE_HEAD 文件包含明明白白的答案。事实上,它只包含那个。
如果有任何 git 命令可以从控制台显示其内容,我很乐意知道并会分发积分。