从当前目录制作 git 钩子 运行
Make git hooks run from current directory
假设我有一个 GIT 回购“MyRepo”和一个子文件夹“代码”,例如:
MyRepo
|-- .git
|-- hooks
|-- pre-commit
|-- <other stuff>
|-- Code
|-- code.java
|-- <other files>
我做 cd MyRepo/Code
,然后做一些更改,做一个 git commit -m "yada yada"
,然后预提交挂钩 运行s。唯一的问题是它在 MyRepo
中 运行s。我希望预提交挂钩到我当前所在目录中的 运行,在本例中为 Code
。我怎样才能做到这一点?
作为这个问题的扩展,有没有办法让我所有的 git 挂钩都以这种方式运行?
挂钩和别名是 运行,您在工作树中的当前路径作为 GIT_PREFIX
变量传入,因此您的挂钩可以 cd $GIT_PREFIX
或根据需要附加它。
。 . .我看到这没有记录,除了很久以前的一些发行说明,我发现它是通过推理类似它必须存在的东西并将 declare -p ${!GIT_*}
放在钩子中,运行 从子目录中,然后检查 Git 历史记录中的 GIT_
变量。
假设我有一个 GIT 回购“MyRepo”和一个子文件夹“代码”,例如:
MyRepo
|-- .git
|-- hooks
|-- pre-commit
|-- <other stuff>
|-- Code
|-- code.java
|-- <other files>
我做 cd MyRepo/Code
,然后做一些更改,做一个 git commit -m "yada yada"
,然后预提交挂钩 运行s。唯一的问题是它在 MyRepo
中 运行s。我希望预提交挂钩到我当前所在目录中的 运行,在本例中为 Code
。我怎样才能做到这一点?
作为这个问题的扩展,有没有办法让我所有的 git 挂钩都以这种方式运行?
挂钩和别名是 运行,您在工作树中的当前路径作为 GIT_PREFIX
变量传入,因此您的挂钩可以 cd $GIT_PREFIX
或根据需要附加它。
。 . .我看到这没有记录,除了很久以前的一些发行说明,我发现它是通过推理类似它必须存在的东西并将 declare -p ${!GIT_*}
放在钩子中,运行 从子目录中,然后检查 Git 历史记录中的 GIT_
变量。