我有一个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
时,很明显改变了什么,但是当在不同的分支之间做这些改变时,我很难读取差异。
2条答案
按热度按时间xzlaal3s1#
对于
git diff <commit>
:a
/-
代表<commit>
b
/+
表示当前工作树对于
git diff <commit1> <commit2>
:a
/-
代表<commit1>
b
/+
代表<commit2>
读取
git diff
:git diff
查找将<commit1>
转换为<commit2>
/working-tree所需的更改。-
:行在<commit1>
中,但不在<commit2>
/工作树中<commit1>
转变为<commit2>
的线+
:行不是在<commit1>
中,而是在<commit2>
/工作树中<commit1>
的行编辑:
你也可以让git使用助记前缀来代替
a
和b
,详见git文档。kxxlusnw2#
明确说明你感兴趣的修订版本,并注意git-diff手册上说
然而,“diff”是关于比较两个端点,而不是范围,并且范围符号(“..”和“...”)并不表示gitrevision(7)中“指定范围”部分定义的范围。
如果你找不到你感兴趣的提交的版本号,你就有更大的问题了。
其中修订版ccd 55 fe是“a”端,cb 3e 8a 0是“b”端。相应地,命令
是完全相反的,并且同样地,在“a左侧”和“b右侧”之间没有歧义。