2010-01-12 164 views
25

我們在我們的項目中使用自定義編寫的Git鉤子。Git掛鉤管理

掛鉤存儲在項​​目的存儲庫中,當它們發生更改時,要獲取新版本,每個用戶都必須手動將它們複製到.git/hooks目錄中。這很不方便。

改進這種方法的一種方法是使.git /掛鉤到工作樹的符號鏈接。但是這意味着每個分支(即使用戶的本地功能分支正在開發中)都應該具有最新版本的鉤子。這也不方便。

你會如何解決這個問題?

回答

12

維護一個獨立的鉤子和符號鏈接庫。

我同意,如果Git有一個內置的傳播鉤子腳本的機制,但它不會。

+1

當然,這是一個選項,但這是早上更新的一個存儲庫...對於每個開發人員。猜猜我需要更多的自動化... – 2010-01-12 23:02:29

0

我們讓.git /掛鉤了一個符號鏈接到工作樹中。

對於那些極少數情況下,當有人需要提交的文件,該鉤子會拒絕,我們使用git commit --no-verify

+0

git commit --no-verify是危險的。當你有不好的承諾時很難重新分配。 – 2010-01-12 23:04:53

+1

@Alexander,git rebase也將採用--no-verify標誌。 – 2010-01-12 23:19:33

+0

謝謝,我錯過了。還是......黑客。 :-) – 2010-01-13 08:47:50

2

你可以做倉庫的.git目錄的倉庫,並且只需添加鉤等配置它,加入objectsrefs等的目錄和文件,如index.gitignore。不僅如此,還可以設置一個post-receive鉤子來更新metarepo的來源。一旦你完成了初始配置,你就可以在不需要額外努力的情況下進行更新。

我正在研究這個細節,比如忽略列表中的內容;我將結果保存在this repo的分支中。

1

可能重複對於基於的NodeJS項目,我建議你考慮看看ghooks