我遇到了一个导致工作丢失的奇怪问题。几天前,一位同事做了一个进入远程分支的承诺。昨天某个时候,远程分支被合并为master。我的同事提交的所有更改都丢失了。通常我会说这是一个糟糕的合并,它只是覆盖了他的变化。然而,日志并未反映这一点。如果我用gitk检查日志,我可以看到提交3a2b22f(同事原始提交)列表中的一个好方法,但是如果我在有问题的文件上运行gitk(检查其历史记录),则提交3a2b22f无处可见。它似乎在合并后提交不再存在于文件历史中。
问题是:
答案 0 :(得分:1)
您可以使用gitk --all -- filename.txt
查看文件的整个历史记录,以便了解合并发生的位置等。命令行等效项为git log --pretty=oneline --graph --all -- filename.txt
。
默认情况下,gitk
和git log
在给定要使用的文件名时,只会在合并时跟随第一个父项。指定--all
标志会导致它们包含任何分支上的提交。 gitk
也有一个--merge
选项可能与此相关,当然git log
有太多不同的选项可以跟踪,这可能会影响显示哪些提交以及显示的方式完成。