2014-03-31 39 views
1

聲明一個pre-commit鉤子:是的,我讀過Skip Git commit hooks,我瞭解-n標誌,但是這不是我要找的。Git的設置,以跳過某些文件


我有一個預提交,爲了做一些代碼美化(含空格替換選項卡,去除雙空行,...)運行掛鉤。

但是,有一些用例我不想讓鉤子運行:例如,當我檢查一些Makefiles時,我不能簡單地用空格替換標籤,所以我不得不跳過這些文件。

如果我是唯一的開發者,我會被罰款,以便防止鉤從正在運行的-n標誌,但也有使用用戶界面的其他球員不知道-n標誌(咳嗽 tortoisegit ),他們不會願意指定一些標記到commit

除了直接在鉤子中執行跳過和明顯-n方式:有沒有其他方法可以阻止預提交鉤子運行?

+0

爲什麼不實施它在鉤子?這將使它更便攜*並且*不依賴於每個有Git設置的用戶來適應你不是特別好編寫的鉤子。 – Biffen

回答

3

經過了類似的想法作爲this pre-commit hook,你可以使用:

git diff --cached --name-only 

將列出那些即將提交的文件,然後你可以對它們進行過濾,以申請您的控件或跳過這些文件。

換句話說,對於每個文件,掛鉤仍在每次提交時運行。
但是它的腳本足夠聰明,可以將其測試應用於要提交的文件列表中的正確文件。