如何在git log命令中排除已删除的文件?
问题描述:
我需要排除在git日志中删除的文件。我使用命令git log -1 --name-only --pretty=format:eee6ce6
来获取上次提交时更改的文件名。我使用pre-receive挂钩来阻止特定的文件类型提交。上面的命令列出了所有已修改的文件。如何在git log命令中排除已删除的文件?
但我想让用户删除特定的文件类型。我怎样才能做到这一点?
- 我也试过这
git log -1 --name-only --pretty=format:eee6ce6-filter=d
命令,但它也列出了删除的文件。 - 这
git log -1 --diff-filter=d --name-only
完美的作品。但它也给commit ID, author name, date
。我只想要文件名。
答
你可以删除的文件的名称中最后一次提交使用git diff
:
git diff --name-only --diff-filter=D HEAD~1
这里什么'HEAD ^'代表什么?是否提交ID? – Parkavi
'HEAD ^'表示'HEAD'之前的提交。所以你可以区分它和'HEAD',换句话说就是上次提交的变化。顺便说一下,我用'HEAD〜1'替换了'HEAD ^',这意味着完全一样的东西,但是它更加便携('HEAD ^'在DOS下不起作用)。 – janos
非常感谢,它完全符合我的要求...... :-) – Parkavi