使 git hooks 从当前目录运行

geo*_*off 4 git hook repo

假设我有一个 GIT 存储库“MyRepo”,其中包含子文件夹“Code”,例如:

MyRepo
  |-- .git
        |-- hooks
              |-- pre-commit
        |-- <other stuff>
  |-- Code
        |-- code.java
        |-- <other files>
Run Code Online (Sandbox Code Playgroud)

我这样做cd MyRepo/Code,然后进行一些更改,执行 a git commit -m "yada yada",然后运行预提交挂钩。唯一的问题是它运行在MyRepo. 我希望预提交挂钩在我当前所在的目录中运行,在本例中为Code. 我怎样才能做到这一点?

作为这个问题的延伸,有没有办法让我所有的 git hooks 都这样?

jth*_*ill 5

挂钩和别名使用作为变量传入的工作树中的当前路径运行GIT_PREFIX,因此您的挂钩可以根据cd $GIT_PREFIX需要附加它。

。。。我发现除了很久以前的一些发行说明之外,没有记录这一点,我发现它是通过推理类似的东西必须存在并把 a 放在declare -p ${!GIT_*}一个钩子中,从子目录运行它,然后检查 Git 历史记录中GIT_包含的 var那。