我最近更新了我的pre_commit.sample
文件,以在提交(重命名爲pre_commit)時運行rubocop。在版本控制上更新pre_commit鉤子文件
#!/bin/sh
#
# Check for ruby style errors
rake run:rubocop
我誤以爲這會在更改其他開發人員計算機時更新。我怎麼能保證任何人誰拉的變化都有自己pre_commit文件更新
感謝
我最近更新了我的pre_commit.sample
文件,以在提交(重命名爲pre_commit)時運行rubocop。在版本控制上更新pre_commit鉤子文件
#!/bin/sh
#
# Check for ruby style errors
rake run:rubocop
我誤以爲這會在更改其他開發人員計算機時更新。我怎麼能保證任何人誰拉的變化都有自己pre_commit文件更新
感謝
正如我在 「Git commit hooks - global settings」 和 「change default git hooks」 去年2016年5月提到,Git的2.9和2.10介紹git config core.hooksPath
。
這似乎confuse the OP:
如果我有一個現有的回購協議,並希望所有其他開發人員的誰拉的變化有例如更新的pre-commit鉤子我會怎麼做呢?
內回購有/.git/hooks/pre_commit
,我可以將它指向
更確切地說,一個git倉庫內,有一個/.git/hooks/pre-commit.sample
並且,考慮到你想有一個共同的pre-commit
鉤所有開發者,你應該而不是,然後在您本地回購中指向/.git/hooks/pre_commit
腳本。
所有開發人員都必須引用使用相同的gobal共享網絡訪問路徑與git config core.hooksPath \\a\common\shared\path
:該設置需要每個開發者的工作站上激活,無論是內的回購協議(本地設置)或所有的回購協議(全局設置:git config --global core.hooksPath \\a\common\shared\path
。
(我在這裏使用一個Windows UNC syntax,使用一個適合你的操作系統)
一旦它們都引用相同的路徑,你可以設置你的pre-commit鉤子有:
\\a\common\shared\path\pre-commit
然後,您可以更新該腳本(每個人都可以訪問的腳本),從而允許所有開發人員立即獲得更新。
直到混帳V2.9有沒有辦法更新客戶端掛鉤。
的Git V2.9暴露新的配置,讓這本:
git config [--local] core.hooksPath ...
core.hooksPath
默認情況下,Git會查找在$ GIT_DIR /鉤目錄中的鉤。將其設置爲不同的路徑,例如/ etc/git/hooks,Git會嘗試在該目錄中找到你的鉤子,例如/ etc/git/hooks/pre-receive而不是在$ GIT_DIR/hooks/pre-receive中。該路徑可以是絕對路徑,也可以是相對路徑。
相對路徑取決於運行掛鉤的目錄。這個配置變量在你希望集中配置你的Git掛鉤而不是在每個存儲庫上配置它們的情況下是有用的,或者作爲一個更靈活和集中的替代方法來使用init.templateDir,已經改變了默認鉤子。
感謝您的幫助,所以澄清我會在本地運行並提交?道歉不太理解100% – Richlewis
你必須在機器上進行本地設置並指定鉤子的路徑。因爲路徑可以在你的工作目錄之外,所以你可以更新它,「客戶端」會得到你的更新。沒有這個配置,除非使用第三方腳本,否則不能完成 – CodeWizard