【问题标题】:Merge issues in GIT - File changes which are in a Merge commit vanished from a branch after a commitGIT 中的合并问题 - 合并提交中的文件更改在提交后从分支中消失
【发布时间】:2015-10-03 09:58:42
【问题描述】:
我们有一个名为 BranchMaster 的分支。我们曾经将代码从同一个分支下合并到另一个名为 BranchDev 的分支。
最近我们已经从 BranchMaster 向下合并到 BranchDev。在合并提交中,它有很多文件更改。之后,分支 BranchDev 中发生了很多提交。其中一个提交是与我团队中其他人完成的另一个提交的合并提交。在最后一次合并提交之后,第一次合并提交中的所有文件更改都消失了。我不确定为什么/如何。
有人可以帮忙吗?
【问题讨论】:
标签:
git
version-control
merge
atlassian-sourcetree
【解决方案1】:
如果有文件被删除,请使用git blame --reverse <old_commit>..<new commit> <name of file>。
要查找已删除的行,如果您知道它们的位置,可以使用 git log -S <deleted string> <filename>
使用git reflog 也是一种选择,但它只会帮助查找已删除的提交。作为新提交的一部分的代码删除与删除提交不同。您应该检查 reflog 条目是否已过期或已清除。
【解决方案2】:
使用gitk 或sourcetree 检查哪个提交负责删除文件。
此外,您可以在任何时间撤消任何提交。执行以下操作。
git reflog
这将为您提供提交的负责人列表。您可以通过键入以下命令来恢复任何提交。
git reset --hard HEAD@<i>