2016-10-05 100 views
0

我有一個包含C語言編寫的代碼,其中的一個文件是Version.c文件,其中包含行一個Git倉庫更新文件的內容Git和合並時

#define Version_Build "0"  

我有一個腳本,可以找到這一行並將數字0增加到下一個整數。腳本是用Perl編寫的,但我可以很容易地使用awk或sed。

我想在分支被合併爲主時在git中自動觸發腳本。我認爲服務器端鉤子是正確的方法。但是,我不確定這是否是最好的方法?

例如,是否需要在master分支上執行git commit或git add?假設這是最好的方法,你能推薦適當類型的鉤子。還是有更好的方法來解決同樣的問題?

回答

1

有一個鉤,post-merge,可以調用git merge。但它在當地的回購中起作用。

如果您希望Git追蹤更改,那麼您需要添加並提交它。這不適合在遠程回購中完成。

在這個鉤子中,你可以檢查當前分支是否爲master。如果是,請進行更改,添加並提交。如果沒有,就別做別的。

git merge的選項一旦部署就可以繞過該鉤子,有時候這可能會讓人討厭。如果你想禁用鉤子,有一些方法來完成這項工作。設置鉤子內可達的標誌變量,檢查它的值並繼續。您可以在git merge之前導出環境變量,然後取消設置。或者,您可以設置一個自定義的配置密鑰。例如,預先輸入git config my.post-merge truegit config my.post-merge false。在掛鉤中,檢查git config --get my.post-merge的值。另一種方法是更改​​掛鉤的名稱,如mv .git/hooks/post-merge .git/hooks/post-merged。當你需要時將它改回來。