我在windows和linux/mac上都使用git倉庫。當我在Windows上創建新的文件,或者在某些文本編輯器進行編輯,文件模式更改爲775,我可以得到git的忽略與git添加鉤子/讓git忽略新文件的文件模式
git config core.filemode false
文件模式的變化,但我也想大多數新文件有模式664(不是775)。我想出了迄今爲止最好的是pre-commit鉤子
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
但這確實錯了的事情,如果我添加了一個新的文件,然後commiting之前再次編輯它,然後COMMITED無添加它。有沒有更好的方法來做到這一點,或者像預先添加或後添加鉤子一樣?
編輯:git diff --cached --name-only
也給了我已刪除的文件,所以我真正想要的是一樣的東西git diff --cached --name-only --diff-filter=ACMRTUXB
污跡和乾淨似乎是對文件內容起作用的過濾器。有沒有辦法讓他們對元數據採取行動? (將clean操作設置爲chmod -x會導致錯誤。) – 2011-03-18 05:56:24