2012-01-23 133 views
0

最近发生在我的团队中,一个新手试图做一个git pull。系统上出现了一些冲突,之后开发人员只是做了一次git重置(使索引达到最后的HEAD)。然后开发人员“承诺”更改一个文件并将其推送到远程。自然,很多变化都失去了。git重置提交和推送问题

然而,我们花了相当长的时间才弄清楚谁做了坏的改变(以及哪个提交是错误的提交)并且恢复它是一个很大的不同的努力。现在在git历史记录中(使用gitk或git log),git只显示已提交的文件,但这是覆盖以前文件的情况(我知道这个概念更多的是CVS而不是git,在这种情况下文件已被移动到先前的提交)。在这种情况下调试的最佳策略是什么?

一旦我们知道哪个分支是违规的,一旦我在好的和不好的commit之间做了一个git diff,我可以看到文件列表,但只查看特定的提交,我们能够找出哪些文件已经移动到先前承诺。

道歉,如果问题没有完全澄清。

回答

0

查看git log -p branch-in-question的输出,您将看到所做的更改,逐个文件。您现在可以通过执行git checkout <some commit> -- some files来相应地重新获得分支。添加所有更改并提交并推送。你应该从这里开始。