假设我有一个 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 都这样?
挂钩和别名使用作为变量传入的工作树中的当前路径运行GIT_PREFIX,因此您的挂钩可以根据cd $GIT_PREFIX需要附加它。
。。。我发现除了很久以前的一些发行说明之外,没有记录这一点,我发现它是通过推理类似的东西必须存在并把 a 放在declare -p ${!GIT_*}一个钩子中,从子目录运行它,然后检查 Git 历史记录中GIT_包含的 var那。