在第一次提交的情况下,添加文件X,第二次提交,删除X,第三次提交重新添加。
如果你运行git diff,那么你会删除X,添加X.
有没有办法分析这组变化并获得结果,“没有变化”?
我实际上对线路更改感兴趣,在我的实例中,我得到了这个回复:
index 5988d3c..eaf3238 100644
--- a/.babelrc
+++ b/.babelrc
@@ -1,3 +1,3 @@
-{
- "presets": ["es2015", "stage-0"]
-}
+{
+ "presets": ["es2015", "stage-0"]
+}
似乎显示完全相同的行添加了和。
这是diff -R
的输出--- b/.babelrc
+++ a/.babelrc
@@ -1,3 +1,3 @@
-{
- "presets": ["es2015", "stage-0"]
-}
+{^M
+ "presets": ["es2015", "stage-0"]^M
+}^M
答案 0 :(得分:2)
您可以简单地执行git diff [first commit] [third commit]
,这将不会产生任何差异。
例如,这里是我的测试存储库的git log
。
commit 368c6c0bc4169b8f482761b036da2284f937579d
Author: Adam
Date: Fri May 6 10:17:45 2016 +0100
Edited file back.
commit 54d9885f860b56c34718387206397c703eb37b36
Author: Adam
Date: Fri May 6 10:16:51 2016 +0100
Edited file.
commit 681f117fd095c7a99d631a1819db855d7fd9e6e8
Author: Adam
Date: Fri May 6 10:16:09 2016 +0100
Added file.
当我使用git diff 681f117fd095c7a99d631a1819db855d7fd9e6e8 368c6c0bc4169b8f482761b036da2284f937579d
比较第一次和第三次提交时,结果为空。
但是,如果我使用git diff 681f117fd095c7a99d631a1819db855d7fd9e6e8 54d9885f860b56c34718387206397c703eb37b36
比较第一次和第二次提交,结果为:
diff --git a/file.txt b/file.txt
index c9a0e4f..76af740 100644
--- a/file.txt
+++ b/file.txt
@@ -1,6 +1,6 @@
I won't edit this line.
-I will edit this line.
+I have edited this line.
I won't edit this line.
如果您没有获得空的更改集但行读取相同,则行内的字符必须存在一些差异,例如使用的制表符代替空格或不同的行结尾。
执行差异时,您可以使用git diff -w
忽略空格。文档:https://git-scm.com/docs/git-diff
我希望这会有所帮助。
答案 1 :(得分:1)
您可以尝试使用以下命令它将显示两次提交之间的区别..
git diff first_commit_id(hash) second_commit_id(hash)
您可以通过键入git log
命令来找到commit_id(哈希)。
Example:
git diff effd192760b957b9a65b011249c122f8434ba7cf effd192760b957b9a67b011249c122f8434ba7cf
答案 2 :(得分:0)
正如我在评论中所说,这是一个空白问题。使用dos2unix
删除^M
。如果你想忽略使用git diff -w
的空格,虽然我不推荐它。