防止在git裸仓库中创建新分支

时间:2013-04-18 23:04:46

标签: git git-branch githooks

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

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用update hook

来实现这一目标
  

此挂钩由远程存储库上的git-receive-pack调用   在本地存储库上执行git推送时发生。就在更新之前   远程存储库上的ref,调用更新钩子。它的退出状态   确定ref更新的成功或失败。

     

钩子为每个ref更新执行一次,并采用三个参数:

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

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

只需检查branchname是否正确并拒绝更新 否则。