列出git中commit中的文件提交模式

时间:2014-09-01 09:19:59

标签: git

有没有办法让git输出像

这样的提交文件列表
git diff --name-only b242091~1 b242091

,但是会打印一个附加列,其中包含添加文件的模式(新建,删除,更改,...)。

或换句话说:是否有像

这样的东西
git status --porcelain

可以在提交时使用吗?

提前感谢您的回答!

2 个答案:

答案 0 :(得分:3)

似乎git diff --name-status正是您所寻找的。

$ git diff --name-status commit1 commit2
M       path/to/modified-file
D       path/to/deleted-file
A       path/to/added-file

git-diff(1)手册页列出了所有可能的第一列值及其含义。

答案 1 :(得分:0)

到目前为止,我找到的最佳解决方案是关于git diff的以下(不是很漂亮)的awk脚本:

git diff HEAD~1 HEAD\
|awk '/^diff/{sub(/[^\/]*\//,"",$3);a=$3;getline;print $1, a}'

输出:

deleted file1
index mydir/file2
new file3

仍然欢迎更美丽的解决方案!