美好的一天 我需要找到一种方法来在git合并后报告时找到已更改文件的完整路径。 如果路径太长,Git通常会将... / rest / of / path /放到/ file文件中。 但我试图解析它,并根据文件的位置,我希望能够在构建时编写合适的操作(编写构建脚本) 有没有我失踪的旗帜,我阅读手册页,似乎找不到任何东西。 谢谢你的帮助。
答案 0 :(得分:1)
我将在这里假设您刚刚完成了合并,因此我可以将其称为HEAD
。
git merge的自动输出基本上是git diff-tree --stat -c HEAD
。 (或者也许是git diff --stat HEAD^ HEAD
;它们几乎是一样的,它是git源代码中的一个调用,所以六个中的一个,另外六个。)--stat
选项给你“漂亮“输出。如果您想获得完整信息,最快捷的方式是:
git diff-tree -c --numstat HEAD
# or git diff --numstat HEAD^ HEAD
第一列是添加的行数,第二列是删除的行数,第三列是完整的文件名。
如果合并是历史记录中的一种方式,只需将HEAD替换为适当的SHA1即可。如果合并正在进行中,并且您正在检查合并,则关于要提交(比如解决了冲突后),请使用git diff --numstat --cached
。