有没有办法使用GitHub&#34;比较视图&#34;查看两个分支的当前版本之间的差异? (也就是说,如果你做git diff <a-branch> <another-branch>
,你会看到相同的差异。)
我做了一个小例子here。有两个分支:&#34; master&#34;和&#34;其他分支&#34;。如果我做git diff master..other-branch
,这就是差异:
diff --git a/README.md b/README.md
index 495cc9f..3d2c3a0 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
Hello there!
+
+This is a commit to the "other-branch" branch.
你可以从那个差异中看出&#34; master&#34;之间的区别。分支和&#34;其他分支&#34; branch是添加一个空行和一行文本,没有删除。
但是,如果我尝试使用GitHub比较视图(https://github.com/akenney/compare-view-test/compare/other-branch或https://github.com/akenney/compare-view-test/compare/master...other-branch),则会显示此差异:
-This is a commit to the master branch.
+Hello there!
+
+This is a commit to the "other-branch" branch.
正在比较&#34;其他分支&#34;分支与旧版本&#34; master&#34;分支,而不是当前版本。即使我指定要比较的特定提交(https://github.com/akenney/compare-view-test/compare/8ed0d53...e4470ec),它也会发生同样的事情 - 它显示的差异不是这两个提交之间的差异。
答案 0 :(得分:11)
GitHub仅支持三点(...
)范围快捷方式规范。
git diff [--options] .. [ - ] [...]
这与之前的表格同义。如果一边省略, 它将与使用HEAD具有相同的效果。
git diff [--options] ... [ - ] [...]
此表单用于查看包含和最多为第二个的分支上的更改,从两者的共同祖先开始。 &#34; git diff A ... B&#34;相当于&#34; git diff $(git-merge-base A B)B&#34;。你可以省略任何一个,它与使用HEAD具有相同的效果。
答案 1 :(得分:2)
现在(四年后的Sept. 2018,GitHub)明确支持“ Three-dot and two-dot Git diff comparisons”。
URL https://github.com/github/linguist/compare/c3a414e..faf7c6将显示:
消息是:
This is a direct comparison between two commits made in this repository or its related forks
现在,您可以轻松地看到两次提交之间的差异,而无需像三点比较那样将它们与常见的合并基础提交进行比较。