Git diff显示不在提交中的更改

时间:2014-09-12 19:21:11

标签: git merge git-diff git-log git-show

我们的dev分支发生了一些事情,发布分支中的很多代码都被合并到了它中。我试图追踪这些变化发生的地方,但我得到了一些非常令人费解的结果。当我运行git diff HEAD@{2}时,它会显示一系列更改,包括几个月内未触及的许多文件,这意味着HEAD@{2}是我所看到的带来错误代码的提交。但是,如果我运行git show HEAD@{2},它会显示一个非常无害的提交,只触及两个文件。此外,当我运行git reset --hard HEAD@{2}时,它似乎解决了问题,并在我尝试重置两次然后使用git reset --hard origin/dev解除它之后将所有奇怪现象加满,现在看来提交带有所有额外代码在HEAD@{1}

我似乎无法做出正面或反面的意见,所以任何建议/指示/提示或技巧都会受到欢迎,但一些令我困惑的指导性问题是:如果有的话,这些代码如何进入分支机构?没有合并提交?如果有人从生产分支机构中选择了一个提交到开发分支的提交,那可能与此相关吗? git showgit diff如何解决提交有什么不同(如果有的话)?

目前的理论我已经给出了有限的git知识:似乎这些变化不是任何提交的一部分,但不知何故在HEAD@{2}左右进入树,所以diff显示变化为它遍历对象树,但show没有看到它们,因为它们不属于提交。这有什么意义,还是我离开基地?

无论哪种方式,感谢您提供任何帮助!

0 个答案:

没有答案