【问题标题】:Use "core.hooksPath" in git config for setting a script as pre-commit script在 git config 中使用“core.hooksPath”将脚本设置为预提交脚本
【发布时间】:2022-01-16 10:51:51
【问题描述】:

我有一个包含 100 个脚本的目录。我只想选择一个脚本作为预提交。 我不想将特定脚本复制到 .git/hooks/。 有什么方法可以使用“git config core.hooksPath”将脚本设置为预提交脚本? 谢谢

【问题讨论】:

  • 可能是,也可能不是:您尝试过什么,获得了什么结果,您的实际设置是什么? (也就是说,这个“有 100 个脚本的目录”中存在哪些名称的文件?)请注意,core.hooksPath 设置了一个 path,即 Git 将搜索具有特定名称的文件的位置。 Git 仍然需要将预提交挂钩命名为 pre-commit

标签: git git-config pre-commit-hook pre-commit


【解决方案1】:

当你设置一个 hooks 目录时,其中的文件必须根据它们的功能来命名。因此,如果您想将该目录用于预提交挂钩,您要执行的脚本必须命名为pre-commit

如果不是这种情况,您可以将脚本留在原处,在其他地方为core.hooksPath 创建一个目录,然后将脚本符号链接到名称为pre-commit 的该目录中。例如,您可以创建 ~/.local/lib/git/hooks 作为钩子路径,并创建符号链接 /usr/bin/foo 作为预提交钩子,如下所示:

$ mkdir -p ~/.local/lib/git/hooks
$ cd ~/.local/lib/git/hooks
$ ln -s /usr/bin/foo pre-commit
$ git config --global ore.hooksPath ~/.local/lib/git/hooks

如果您使用的是 Windows,那么您可能需要提升权限或启用开发者模式(推荐使用后者)才能创建符号链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-18
    • 2013-05-26
    • 2017-01-12
    • 2012-02-20
    • 1970-01-01
    • 2011-04-01
    • 2012-03-22
    • 1970-01-01
    相关资源
    最近更新 更多