繁体   English   中英

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

[英]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.shmyscript.sh是行不通的。

此外,如果要求输入密码,甚至 myscript.sh 也会返回 /.git/hooks 文件夹。 使用 $GIT_WORK_TREE 指向 ~。 我目前看不到指向回购根目录的可靠方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM