在做了一个“简单的”合并(没有冲突)之后,git show通常只显示如下内容
commit 0e1329e551a5700614a2a34d8101e92fd9f2cad6 (HEAD, master)
Merge: fc17405 ee2de56
Author: Tilman Vogel <email@email>
Date: Tue Feb 22 00:27:17 2011 +0100
Merge branch 'testing' into master
这是因为,对于合并,git show使用组合的diff格式,省略了与父版本一致的文件。
有没有办法强制git在组合diff模式下仍然显示所有差异?
执行git show -m将显示差异(分别使用新版本和所有父版本之间的两两差异),但我更喜欢在组合模式中,在各自的列中用+/-标记差异。
查看commit消息:
commit 0e1329e551a5700614a2a34d8101e92fd9f2cad6 (HEAD, master)
Merge: fc17405 ee2de56
Author: Tilman Vogel <email@email>
Date: Tue Feb 22 00:27:17 2011 +0100
Merge branch 'testing' into master
注意这一行:
Merge: fc17405 ee2de56
获取这两个提交id并反转它们。为了得到你想要的diff,你可以这样做:
git diff ee2de56...fc17405
只显示更改后的文件名称:
git diff --name-only ee2de56..fc17405
要提取它们,你可以把这个添加到你的gitconfig:
exportfiles = !sh -c 'git diff $0 --name-only | "while read files; do mkdir -p \"$1/$(dirname $files)\"; cp -vf $files $1/$(dirname $files); done"'
然后用它来做:
git exportfiles ee2de56..fc17405 /c/temp/myproject
查看commit消息:
commit 0e1329e551a5700614a2a34d8101e92fd9f2cad6 (HEAD, master)
Merge: fc17405 ee2de56
Author: Tilman Vogel <email@email>
Date: Tue Feb 22 00:27:17 2011 +0100
Merge branch 'testing' into master
注意这一行:
Merge: fc17405 ee2de56
获取这两个提交id并反转它们。为了得到你想要的diff,你可以这样做:
git diff ee2de56...fc17405
只显示更改后的文件名称:
git diff --name-only ee2de56..fc17405
要提取它们,你可以把这个添加到你的gitconfig:
exportfiles = !sh -c 'git diff $0 --name-only | "while read files; do mkdir -p \"$1/$(dirname $files)\"; cp -vf $files $1/$(dirname $files); done"'
然后用它来做:
git exportfiles ee2de56..fc17405 /c/temp/myproject