【问题标题】:prevent new branches being created in a git bare repo防止在 git 裸仓库中创建新分支
【发布时间】:2013-04-18 23:04:45
【问题描述】:

我们有一个主要的裸仓库,它有一个钩子,可以将特定分支推送到另一个远程裸仓库。另一个 repo 应该只有一个分支。 post-receive 钩子检查当前提交是否在特定分支上(使用 git rev-parse specific_branch_name),如果是:

 git push ssh://git@remote/path/to/repo

现在我们做了一些愚蠢的事情并推送了一个新分支(与特定分支在同一个提交上)。钩子推动了这个,并在另一个遥控器上创建了一个新分支。

现在显然我们需要从另一个远程删除该分支。但是我想知道如何让另一个远程拒绝创建新分支(它应该只有一个特定的分支而没有其他分支)。有没有办法做到这一点?

提前致谢。

【问题讨论】:

    标签: git git-branch githooks


    【解决方案1】:

    您可以使用update hook

    这个钩子由远程存储库上的 git-receive-pack 调用,它 在本地存储库上完成 git push 时发生。就在更新之前 远程存储库上的引用,调用更新挂钩。它的退出状态 决定ref更新的成败。

    钩子对每个要更新的 ref 执行一次,并接受三个参数:

    • 正在更新的 ref 的名称,
    • 存储在 ref 中的旧对象名称,
    • 以及要存储在引用中的新对象名。

    更新钩子的零退出允许更新引用。退出 非零状态阻止 git-receive-pack 更新该参考。

    只检查分支名是否正确,拒绝更新 否则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-26
      • 2019-06-19
      • 1970-01-01
      • 2021-05-27
      • 2015-02-22
      • 1970-01-01
      • 2018-05-26
      • 2011-11-26
      相关资源
      最近更新 更多