2010-04-14 56 views
3

有沒有辦法在提交之前通過過濾器運行更改的文件?我希望確保這些文件符合項目的編碼標準。Git:在提交/推送前通過過濾器運行?

我還想在commit/push實際發生之前編譯並運行一些測試,所以我知道repo中的所有內容都可以正常工作。

回答

3

預先提交鉤子。請閱讀git hooks。例如,Git Book有一個example關於如何編寫Ruby腳本來運行RSpec測試。

您只需將可執行文件保存爲.git/hooks/pre-commit - 使用hashbang指定語言。它只是一個普通的shell腳本,儘管你可以使用任何腳本語言,只要它在出現問題時返回1,如果沒有則返回0。

+0

這正是我要找的。有了這個,我可以強制回購作爲項目的編碼標準。謝謝一堆。現在我所要做的就是編寫一些腳本來做我想做的事情。 – martiert 2010-04-14 18:04:27

3

對於濾波部分,我會建議smudge/clear driver,包含所有格式或檢查你所需要的「清除」腳本(執行上提交)

filter driver

你可以宣佈這個git attribute filter driver只爲某些類型的文件,僅適用於您的倉庫中的某些目錄。