Answers:
你可以做:
git diff master~20:pom.xml pom.xml
...将您的当前版本pom.xml与master20个修订版中的第一个修订版进行比较。master~20当然,您可以用提交的对象名称(SHA1sum)或指定修订版本的许多其他方式中的任何一种来代替。
请注意,这实际上是将旧pom.xml版本与工作树中的版本进行比较,而不是将中提交的版本进行比较master。如果需要,可以改为执行以下操作:
git diff master~20:pom.xml master:pom.xml
git diff <revision> <path>
例如:
git diff b0d14a4 foobar.txt
如果要查看单个文件的最后一次提交之间的区别,可以执行以下操作:
git log -p -1 filename
这将为您提供git中文件的差异,而不是比较本地文件。
-1直到获得更改。
gitlog () { git log -${3:-p} -${2:-1} $1; } 像这样使用:gitlog Rakefile或gitlog Rakefile 5和gitlog Rakefile 10 s。第一个显示一个差异。第二个显示五个差异;第三个显示十个--no-patch。
要查看上次提交中文件中的更改:
git diff HEAD~1 path/to/file.
您可以将数字(〜1)更改为要与之进行比较的第n个提交。
通用语法:
$git diff oldCommit..newCommit -- **FileName.xml > ~/diff.txt
存储库中任何位置的所有名为“ FileName.xml”的文件。
注意“-”和“ **”之间的空格
回答您的问题:
$git checkout master
$git diff oldCommit..HEAD -- **pom.xml
or
$git diff oldCommit..HEAD -- relative/path/to/pom.xml
与git一样,您可以使用tag / sha1 /“ HEAD ^”来标识提交。
在Ubuntu上使用git 1.9.1进行了测试。
对于有兴趣从GitHub执行相同操作的人员,请参阅比较跨时间的提交。
例如,如果您需要对存储中的单个文件进行比较,则可以执行
git diff stash@{0} -- path/to/file
如果您正在寻找特定提交上的差异,并且想要使用github UI而不是命令行(例如您想将其链接到其他人),则可以执行以下操作:
https://github.com/<org>/<repo>/commit/<commit-sha>/<path-to-file>
例如:
请注意右上角的“上一个”和“下一个”链接,这些链接使您可以浏览提交中的所有文件。
但是,这仅适用于特定的提交,不适用于任何两个任意版本之间的比较。
git diff <revision>:foo/ HEAD:foo/。