【问题标题】:Git post-checkout hook on windowsWindows 上的 Git 结帐后挂钩
【发布时间】:2020-12-19 13:17:10
【问题描述】:

我在 Windows 上安装了 git 2.28.0。 事实上,我在/.git 存储库下的hooks 存储库中找不到post-checkout.sample 钩子。 Windows 是否支持 post-checkout.sample 挂钩? 当我在 linux 上安装相同版本的 git 时,我发现了 post-checkout.sample 钩子。 我什至尝试了 git 2.23.0 版本,我也遇到了同样的问题。

我尝试创建post-checkout 来打印一条简单的消息“你好”。但它不起作用。但是,当我在pre-commit 中复制此文件时,它可以工作。 有什么建议吗?

【问题讨论】:

    标签: windows git githooks


    【解决方案1】:

    我从未在mingw64/share/git-core/templates/hooks/ 中看到post-checkout.sample 中的Git For Windows distribution

    但是如果你成功了,这个钩子应该可以工作:

    • 名为“post-checkout”的文件
    • bash 脚本(参见example here
    • 在您的repo/.git/hooks 文件夹中

    其实有一个proposal (RFC) for a post-checkout.sample in 2009,只是当时没有捡到。

    问题was asked (also in 2009)

    我还注意到 当我初始化一个新档案时,结帐后样本不存在。这是一个 错误?

    不,这是安全性。
    Hooks 是可执行文件,不应盲目 出于安全原因复制。

    【讨论】:

      【解决方案2】:

      似乎它不适用于空存储库。 我刚刚在我的存储库中提交了一个文件,当我执行 git checkout -b new_branch 时,post-checkout 挂钩起作用了。

      【讨论】:

      • 好点。当您签出文件时,它也应该可以工作。
      • 奇怪:stackoverflow.com/q/44427458/6309 表明它应该可以工作。我刚刚通过创建一个myrepo/.git/hooks/post-checkout 文件对其进行了测试,并且只签出了一个文件(即使它甚至没有被修改!):它工作。
      猜你喜欢
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 2012-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      相关资源
      最近更新 更多