我有一个master
分支和一个foo
分支。两个分支都没有任何承诺,但它们彼此分歧。我在foo
分支,我运行
git diff master
我得到以下输出
diff --git a/myfile.html b/myfile.html
index 48d09a1..4ced8e5 100644
--- a/AdvancedSearch.aspx
+++ b/AdvancedSearch.aspx
@@ -1919,1 +1919,2 @@
</script>
-Line removed in master or foo - I don't know which
+Line added in master or foo - I don't know which
是否在master
或foo
中添加了新行?旧行是在master
还是foo
中删除了?我该怎么说?
还有这种情况呢?我在分支机构bar
,我希望看到master
和foo
之间的区别:
git status
On branch bar
nothing added to commit, working directory clean
git diff master..foo
当我在工作树中进行更改然后运行git diff
时,显然已发生了变化。但是当我在不同的分支之间进行操作时,我正在努力阅读差异。
答案 0 :(得分:0)
明确您感兴趣的修订版,并注意git-diff手册说
然而,&#34;差异&#34;是关于比较两个端点,而不是范围,并且范围符号(&#34; ...&#34;和&#34; ...&#34;)并不意味着&#34;中定义的范围。指定范围&#34; gitrevisions(7)中的部分。
如果您找不到您感兴趣的提交的修订号,则会遇到更大的问题。因此:
$ git diff ccd55fe cb3e8a0
修订版ccd55fe是&#34; a&#34;方和cb3e8a0是&#34; b&#34;侧。相应地,命令
$ git diff cb3e8a0 ccd55fe
是完全相反的,同样,&#34;左侧&#34;之间没有歧义。和&#34; b右侧&#34;。
答案 1 :(得分:0)
对于git diff <commit>
:
a
/ -
代表<commit>
b
/ +
代表当前的工作树对于git diff <commit1> <commit2>
:
a
/ -
代表<commit1>
b
/ +
代表<commit2>
阅读git diff
:
git diff
查找将<commit1>
转换为<commit2>
/工作树所需的更改。所以:
-
:位于 <commit1>
中的行,但不是位于<commit2>
/工作树中的行
<commit1>
转换为<commit2>
所需的行+
:在<commit1>
中不是行,但在 <commit2>
/工作树中行
<commit1>