繁体   English   中英

合并后Git提交消失

[英]Git commit vanishes after merge

我遇到一个奇怪的问题,这导致工作丢失。 一位同事几天前在一个远程分支机构中作出了承诺。 昨天某个时候,远程分支已合并为master。 我的同事一次提交所做的所有更改都丢失了。 通常,我会说这是一次糟糕的合并,而且它覆盖了他的更改。 日志却不能反映这一点。 如果我使用gitk查看日志,则可以看到列表中的3a2b22f(同事原始提交)是不错的选择,但是如果我在有问题的文件上运行gitk(以检查其历史记录),则3a2b22f不在哪里。 好像合并之后,提交不再存在于文件历史记录中。

问题是:

  1. 这到底是怎么发生的
  2. 如何防止它再次发生?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM