13

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

我当然可以做以下事情:

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

但我认为那不好;)

那么如何在提交后脚本中获取我的项目路径?

4

1 回答 1

23

当您处理非裸存储库时,post-commit1挂钩将使用存储库工作树的当前工作目录运行。所以,你不需要../../.

如果你想要脚本的完整路径,你总是可以这样做:

SCRIPT=$(readlink -nf myscript.sh)

...或者您可以使用git rev-parse --show-toplevel获取工作目录的绝对路径:

SCRIPT=$(git rev-parse --show-toplevel)/myscript.sh

1 ...但请注意,其他一些钩子并非如此,例如在post-receive非裸存储库中的钩子中,当前工作目录是该.git目录。

于 2011-03-09T16:25:00.380 回答