git - git push 后本地执行 Hook ?

标签 git githooks

我看过the githooks manpage但除非我遗漏了一些东西,否则我看不到本地的、推送后的 git 钩子(Hook)的选项。在我将 master 分支推送到 GitHub 存储库后,我想要一个更新我的 Web 服务器上的 api 文档(我已经有一个脚本)。当然我也可以写自己的脚本,结合 git push 和 api docs 运行,但感觉有点不雅。

最佳答案

这个问题的另一个解决方案是为执行 .git/hooks/pre-push.git/hooks/post 的 git push 设置一个包装器-在 git push 调用之前和之后推送 脚本。可能的包装器可能如下所示:

#!/bin/sh

GIT_DIR_="$(git rev-parse --git-dir)"
BRANCH="$(git rev-parse --symbolic --abbrev-ref $(git symbolic-ref HEAD))"

PRE_PUSH="$GIT_DIR_/hooks/pre-push"
POST_PUSH="$GIT_DIR_/hooks/post-push"

test -x "$PRE_PUSH" &&
    exec "$PRE_PUSH" "$BRANCH" "$@"

git push "$@"

test $? -eq 0 && test -x "$POST_PUSH" &&
    exec "$POST_PUSH" "$BRANCH" "$@"

保存为 git-push-wh 在你的 PATH 某处,如果你想的话,它可以被调用为 git push-wh用钩子(Hook)推。

关于git - git push 后本地执行 Hook ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1797074/

相关文章:

bash - Windows 上的 Git 预提交 bash 脚本

python - Windows 上的ezyang/git-ftp

macos - 目录 bb101 repo-practice 在哪里

git - 在 Visual Studio 中格式化(4 个空格)所有代码文件?

git - 无法使用 'Poll SCM' 和 Git notifyCommit 选项触发构建

git - 理解 Git Hook - post-receive hook

git - Git 钩子(Hook)可以自动将文件添加到提交吗?

git - 使用 CopSSH 和 MSysGit 从 Windows 克隆 git 存储库

git - 将Gradle-add项目重新集成到现有的Git中

每个分支的 Git 提交钩子(Hook)