我如何区分一个文件,比如pom.xml,从主分支到Git中的任意旧版本?


当前回答

如果你需要区分一个单独的文件在藏匿,例如,你可以这样做

git diff stash@{0} -- path/to/file

其他回答

git diff <revision> <path>

例如:

git diff b0d14a4 foobar.txt

对于有兴趣从GitHub做同样的事情的人,请参阅跨时间的提交比较。

你可以:

git diff master~20:pom.xml pom.xml

... 通过第一个父文件将当前的pom.xml与master在20个修订之前的版本进行比较。当然,您可以用提交的对象名(SHA1sum)或指定修订的任何其他方式来替换master~20。

请注意,这实际上是将旧的pom.xml与工作树中的版本进行比较,而不是在master中提交的版本。如果你想这样做,那么你可以做以下事情:

git diff master~20:pom.xml master:pom.xml

如果你需要区分一个单独的文件在藏匿,例如,你可以这样做

git diff stash@{0} -- path/to/file

如果你擅长使用图形工具(甚至更喜欢它),你可以:

gitk pom.xml

在gitk中,您可以单击任何提交(以“选择”它),然后右键单击任何其他提交,在弹出菜单中选择“Diff this -> selected”或“Diff selected -> this”,这取决于您喜欢的顺序。