[英]how to get project path in hook script post-commit?(git)
我想调用位于存储库中的脚本。
我当然可以做到以下几点:
#!/bin/sh
../../myscript.sh
但我认为那不好;)
那么如何在提交后脚本中获取我的项目路径?
当您处理非裸存储库时,使用存储库的工作树的当前工作目录运行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
目录。
这仍然有效吗? 我post-commit
包含
#!/bin/sh
exec ./../../myscript.sh
和作品。
仅使用exec myscript.sh
或myscript.sh
是行不通的。
此外,如果要求输入密码,甚至 myscript.sh 也会返回 /.git/hooks 文件夹。 使用 $GIT_WORK_TREE 指向 ~。 我目前看不到指向回购根目录的可靠方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.