簡體   English   中英

git diff 獨特的合並提交

[英]git diff unique to merge commit

說我有,

      A topic
     / \
D---E---F master

我可以通過做輕松獲得DE的差異

git diff D..E --name-status

EF 和 EA 也一樣。

提交 F 是一個合並提交,並說它有沖突。 已通過修改 foo.bar 解決。 foo.bar 是 git 添加的,然后合並提交被提交。 合並沖突已解決。

現在 foo.bar 的更改僅存在於提交 F 中。我如何獲得該差異?

有沒有辦法獲取合並提交中唯一引入的文件的差異?

合並提交上的git show將顯示其任何父項中沒有的更改。 例如:

$ echo 123 > file1.txt
$ git add file1.txt
$ git commit -am '123'

$ git checkout -b test
$ echo 1234 > file1.txt
$ git commit -am '1234'

$ git checkout HEAD~ -b test2
$ echo 0123 > file1.txt
$ git commit -am '0123'

$ git merge test
$ echo 01234 > file1.txt
$ git add file1.txt
$ git commit -am 'Merge test'

$ git show
commit f056a1c91d76c8dfce60a03122494dce92c1e161
Merge: 489f1d3 fcfd2bc
Date:   Fri Jul 15 20:30:17 2011 -0500

    Merge test

diff --cc file1.txt
index 40381e2,81c545e..3521a84
--- a/file1.txt
+++ b/file1.txt
@@@ -1,1 -1,1 +1,1 @@@
- 0123
 -1234
++01234

不確定“在合並提交中唯一引入的文件”到底是什么意思。 該文件之前必須存在,否則不會發生沖突。 並且“foo.bar 的更改僅存在於提交 F 中”也不完全正確。 提交不包含更改。 您可以看到 foo.bar diff 與任何其他完全相同: git diff EFgit diff AF ,具體取決於您要遵循的分支。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM