如何在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 
+0

这里什么'HEAD ^'代表什么?是否提交ID? – Parkavi

+0

'HEAD ^'表示'HEAD'之前的提交。所以你可以区分它和'HEAD',换句话说就是上次提交的变化。顺便说一下,我用'HEAD〜1'替换了'HEAD ^',这意味着完全一样的东西,但是它更加便携('HEAD ^'在DOS下不起作用)。 – janos

+0

非常感谢,它完全符合我的要求...... :-) – Parkavi