有没有办法让git输出像
这样的提交文件列表git diff --name-only b242091~1 b242091
,但是会打印一个附加列,其中包含添加文件的模式(新建,删除,更改,...)。
或换句话说:是否有像
这样的东西git status --porcelain
可以在提交时使用吗?
提前感谢您的回答!
答案 0 :(得分:3)
似乎git diff --name-status
正是您所寻找的。 p>
$ 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
仍然欢迎更美丽的解决方案!