2010-09-03 91 views
0

美好的一天 我需要找到一种方法来查找git合并后报告的更改文件的完整路径。 如果路径太长,Git通常会放置一个.../rest/of/path /到/ the /文件。 但我试图解析它,并根据文件的位置我想能够在构建(写建筑脚本)时决定一个合适的动作 有没有我缺少的标志,我阅读手册页和似乎无法找到任何东西。 感谢您的帮助。git兼并文件的完整路径

回答

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

+0

谢谢你,我刚回到这里评论说我找到了--numstat :)。其他我需要的东西,我可以先忽略数字。 非常感谢您的帮助。 – 2010-09-03 20:14:52