如何在提交后的钩子脚本中获取项目路径?(git)

时间:2011-03-09 16:10:38

标签: git path post-commit

我想调用位于存储库中的脚本。

我当然可以做以下事情:

#!/bin/sh
../../myscript.sh

但我觉得那不好;)

那么如何在post-commit脚本中获取项目的路径?

1 个答案:

答案 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目录。