如果我们更改`git config core.hooksPath`,如何恢复到默认值

Ale*_*lls 14 git git-config githooks

默认情况下,在 git repo root 中运行时,它看起来是空的:

git config core.hooksPath
Run Code Online (Sandbox Code Playgroud)

如果我们将 git config core.hooksPath 更改为git config core.hooksPath myhooks,我的问题是 - 我们如何将其更改回默认值?我们应该取消设置值(如何?),还是应该将其设置.git/hooks为 in git config core.hooksPath .git/hooks

bk2*_*204 17

答案取决于它的设置位置以及您想要更改的内容。如果该选项已在您的本地存储库中设置并且您想撤消它,则git config --unset core.hooksPath取消设置它就足够了,这将使 Git 选择默认选项。

如果该选项设置在更高级别的配置中(例如,每用户或每系统)并且您不想从该位置删除它,则仅针对此存储库覆盖它,git config core.hooksPath .git/hooks如果您处于非-bare 存储库或者git config core.hooksPath hooks如果您在一个裸存储库中。

来自git-config(1)

路径可以是绝对的,也可以是相对的。相对路径被视为相对于运行钩子的目录。

来自githooks(5)

在 Git 调用钩子之前,它会将其工作目录更改为裸仓库中的 $GIT_DIR 或非裸仓库中工作树的根目录。

因此需要.git/hooks在非裸存储库和裸存储库hooks中。