合并后Git提交消失了

时间:2014-04-23 16:24:13

标签: git merge

我遇到了一个导致工作丢失的奇怪问题。几天前,一位同事做了一个进入远程分支的承诺。昨天某个时候,远程分支被合并为master。我的同事提交的所有更改都丢失了。通常我会说这是一个糟糕的合并,它只是覆盖了他的变化。然而,日志并未反映这一点。如果我用gitk检查日志,我可以看到提交3a2b22f(同事原始提交)列表中的一个好方法,但是如果我在有问题的文件上运行gitk(检查其历史记录),则提交3a2b22f无处可见。它似乎在合并后提交不再存在于文件历史中。

问题是:

  1. 这究竟是怎么发生的
  2. 如何阻止它再次发生?

1 个答案:

答案 0 :(得分:1)

您可以使用gitk --all -- filename.txt查看文件的整个历史记录,以便了解合并发生的位置等。命令行等效项为git log --pretty=oneline --graph --all -- filename.txt

默认情况下,gitkgit log在给定要使用的文件名时,只会在合并时跟随第一个父项。指定--all标志会导致它们包含任何分支上的提交。 gitk也有一个--merge选项可能与此相关,当然git log有太多不同的选项可以跟踪,这可能会影响显示哪些提交以及显示的方式完成。