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

标签 git path post-commit

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

我当然可以做以下事情:

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

但我认为那不太好;)

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

最佳答案

当您处理非裸存储库时,post-commit1 Hook 会在存储库工作树的当前工作目录下运行。所以,您不需要 ../../

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

SCRIPT=$(readlink -nf myscript.sh)

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

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

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

关于git - 如何在提交后的钩子(Hook)脚本中获取项目路径?(git),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5248587/

相关文章:

r - 自动删除文件/文件夹

shell - zsh command not found : zeus, mailcatcher等?

git - 是否有 svn :bugtraq properties? 的 Git 副本

git - 是否可以在不克隆整个存储库的情况下从另一个存储库中挑选一个提交?

git gc 错误 : failed to run repack message

git - 在 Git 中提交之前临时清除未跟踪的文件

Delphi 获取文件位置

c# - SharpSVN 使用 'SvnLookClient' 获取提交后 Hook

svn - Subversion 提交后 Hook

python - 使用 mailer.py 时出现 "You need version 1.5.0 or better of the Subversion Python bindings"