我想调用位于存储库中的脚本。
我当然可以做以下事情:
#!/bin/sh
../../myscript.sh
但我觉得那不好;)
那么如何在post-commit脚本中获取项目的路径?
答案 0 :(得分:15)
当您处理非裸存储库时,post-commit
1 挂钩将与存储库工作树的当前工作目录一起运行。因此,您不需要../../
。
如果您想要脚本的完整路径,您可以随时执行:
SCRIPT=$(readlink -nf myscript.sh)
...或者您可以使用git rev-parse --show-toplevel
获取工作目录的绝对路径:
SCRIPT=$(git rev-parse --show-toplevel)/myscript.sh
1 ...但请注意,其他一些钩子不是这样,例如在非裸存储库的post-receive
挂钩中,当前工作目录是.git
目录。