2010-01-27 83 views
5

我在perforce资源库中使用git。我希望能够确切地知道哪些文件受到了git提交的影响,所以我可以使用post-commit挂钩并在perforce中打开这些文件进行编辑,以便perforce服务器知道这些更改。
有没有一种方法可以在提交后的钩子中得到一个列表,确切地说哪些文件受到了提交的影响?有没有办法用git post-commit hook获取提交的受影响文件?

回答

2

要获取原始数据:

git diff-tree HEAD

+0

看起来不像那个让我看到实际文件的列表 - 它向我展示了受影响的目录。 – bergyman 2010-01-27 18:13:31

+0

...没关系,挖掘差异树的选项这可能工作。 – bergyman 2010-01-27 18:18:09

6

获取当前分支的头部受影响的路径(相对于$GIT_DIR)与

git show --pretty=oneline --name-only HEAD | sed 1d 
+0

你可以得到完全相同的输出: git diff-tree --name-only -r HEAD | sed 1d 有趣的是,有几种方法可以做到这一点...... – bergyman 2010-01-27 19:10:44

+0

在这种情况下,在'git show'上使用'git diff-tree',因为前者是低级管道,而不是用于人类的瓷器使用。请参阅http://progit.org/book/ch9-1.html – 2010-01-27 19:16:25

1

git log --name-only你在找什么? git log --name-status也显示了像M修改,A添加(我推测)等动作。

最后,选项--pretty=oneline可能会方便更容易解析。

显然你可能已经想通了,但我添加了这个以备将来参考。

相关问题