git diff <branch>显示了/ File b / File之间的区别。哪个是b,哪个是b?

时间:2015-07-29 14:43:55

标签: git

我有一个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

是否在masterfoo中添加了新行?旧行是在master还是foo中删除了?我该怎么说?

还有这种情况呢?我在分支机构bar,我希望看到masterfoo之间的区别:

git status
On branch bar    
nothing added to commit, working directory clean

git diff master..foo

当我在工作树中进行更改然后运行git diff时,显然已发生了变化。但是当我在不同的分支之间进行操作时,我正在努力阅读差异。

2 个答案:

答案 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>
    • 的行