在git post-merge hook中列出已更改的文件

时间:2011-02-02 16:54:30

标签: git githooks

合并后钩子是否有办法获取合并更改的所有文件的列表,即使它是快进的?

2 个答案:

答案 0 :(得分:7)

也可以使用ORIG_HEADHEAD shortcuts

git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD

(另见:List all the files for a commit in Git

答案 1 :(得分:3)

我认为那时你最好的选择就是reflogs。如果您只是快进,HEAD的第一行reflog将如下所示:

63e21fb HEAD@{0}: merge origin/master: Fast-forward

因此,您应该只能打印第一行(git reflog -n 1),检查它是否与merge .*: Fast-forward$匹配,如果匹配,请执行git diff HEAD@{1} HEAD。 (您确实希望查看reflog以验证是否存在快进合并,除非您对脚本有信心,这是现在唯一的可能性。)