我正在 Windows 和 linux/mac 上使用 git 存储库。当我在 Windows 上创建新文件或在某些文本编辑器中编辑它们时,文件模式更改为 775。我可以让 git 忽略文件模式更改
git config core.filemode false
但我也希望大多数新文件具有模式 664(而不是 775)。到目前为止我想出的最好的是预提交钩子
git diff --cached --name-only | egrep -v '\.(bat|py|sh|exe)' | xargs -d"\n" chmod 664
git diff --cached --name-only | egrep -v '\.(bat|py|sh|exe)' | xargs -d"\n" git add
但是如果我添加了一个新文件,然后在提交之前再次编辑它,然后在不添加它的情况下提交,那么这会做错事。有没有更好的方法来做到这一点,或者像 pre-add 或 post-add 钩子之类的东西?
编辑:git diff --cached --name-only
还给了我已删除的文件,所以我真正想要的是git diff --cached --name-only --diff-filter=ACMRTUXB