git-clone 和 checkout 后 Hook

标签 git hook git-clone

根据手册,post-checkout Hook 在 git checkout 之后运行(正如预期的那样),但也在 git clone 之后运行>(除非您通过 --no-checkout)。

很好,现在,考虑以下几点:

  • git clone 之前您没有本地存储库
  • Hook 在远程之间不同步
  • 存储在与 --template 一起使用的自定义模板目录中的 Hook 被复制为不可执行的,因此 git clone 之后执行> (这实际上不是 Jefromi 在他的回答中所说的那样,但是钩子(Hook)仍然没有执行)

post-checkout Hook 似乎不可能在 git clone 之后执行。尽管如此,位于 http://git-scm.com/docs/githooksgithooks 手册页明确说明了避免它被执行的方法,以及在执行时传递的参数,这表明可以在 git-clone 之后执行自定义 Hook 。

那怎么可能呢?我显然在这里遗漏了一些东西。

结果

最佳答案

我想您可以进行自定义安装 - 重命名 .../share/git-core/templates/hooks 中的 Hook 以删除 .sample 后缀。

您还可以创建一个模板目录,其中包含指向存储库中 hooks 目录的符号链接(symbolic link)(例如 post-checkout -> ../../hooks/post-checkout)。然后,如果克隆的 repo 包含那个特定的钩子(Hook),它就会被执行。

你是对的,但在大多数情况下它不会发生。

编辑:我刚刚对其进行了测试,--template 选项似乎确实保留了权限,因此这是一种更直接的实现方式。你看到什么表明它剥离了那个位?

关于版本的最终决定权:您正在在线查看文档以查找比您正在使用的版本更新的 git。此功能已添加到 dfa7a6c(克隆: checkout 时运行 checkout 后 Hook ); git describe 说这直到 v1.6.2-rc2 才包含在内。

关于git-clone 和 checkout 后 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2141492/

相关文章:

linux - 将我自己的 Git 服务器与我的 Windows Eclipse IDE 链接起来

git - 将当前树更新到 Git 的 HEAD

git - 在不接触工作树的情况下切换分支?

c++ - Hook WM_SETTEXT 后更改字符串

git - 这个预提交钩子(Hook)如何修复尾随空格?

python - 如何在命令行重新启动我的 Heroku Django 应用程序?

tortoisesvn - 钩子(Hook)脚本教程?

git 只克隆一个子目录,在当前目录的根目录下

php - 使用 PHP 克隆 Git 仓库

使用 GIT_SSH 错误使用自定义 SSH 进行 Git 克隆