2013-03-21 97 views
1

我是塔的新手。我試圖做的是防止將repo推送到我們的遠程,如果repo中名爲index.html的文件包含字符串「1234」。塔(GIT)自定義腳本?

有什麼建議嗎?

而且,如果塔不允許這樣做,當從終端直接使用git時可以這樣做嗎?

謝謝

回答

1

所以我找到了適合我的解決方案。

就預推鉤而言,它確實存在。 (這只是回答VonC留下的評論)。

從git 1.8.2開始,可以運行預推鉤。所以,當我嘗試推送時,我正在做的是從pre-push鉤子中以非零值退出,並且在預推動鉤子中指定的某個文件包含某個字符串。

所以我想這就是我需要做的。我可以看到,在服務器端做到這一點更好,但在這種情況下,我需要它以這種方式工作。

所以,通過使用git 1.8.2,可以通過使用預推鉤來輕鬆完成。

+0

非常好。我錯過了在https://github.com/git/git/blob/master/Documentation/RelNotes/1.8.2.txt。 +1我已經編輯了相應的答案。 – VonC 2013-03-22 20:38:18

1

它似乎並不涉及到塔,但更多的連接到遠程回購本身:
你可以設置(在遠程回購)的update hook,這將檢查每個提交,並確保內容不是錯誤的。
請參閱「Prevent pushes to git containing tabs in certain files (e.g. *.cpp, *.h, CMakeLists.txt)」中的示例。

一個客戶端的鉤狀「推送預鉤」 WDEL>不存在的,所以最好是mutualize在遠程側控制,以便執行用於任何下游回購推到該控制說遠程回購。

推預鉤實際存在since git1.8.2 5March第八,2013),但是這需要將其部署到每個下游回購相比,實施同樣的策略中一個地方(上游回購),這是不是最佳的。
這就是說,如果你有一個下游回購你正在使用(即你自己的本地回購),一個預先確認的鉤子可以派上用場。

+0

因此,我已經閱讀了一些鉤子文檔,並且仍然在努力獲得對此的更好理解,但是,可以使用預推式鉤子讓我使這發生在客戶端並通過返回中止推送鉤子中的非零值? – zumzum 2013-03-21 19:43:11

+0

@zumzum一個「預推」鉤子不存在**:爲* all *下游回購強制一個策略,最好在遠程端添加一個鉤子。 – VonC 2013-03-21 21:08:50