我们有一个主要的裸仓库,它有一个钩子,应该将一个特定的分支推送到另一个远程裸仓库。另一个回购只应该有一个分支。 post-receive钩子检查当前提交是否在特定分支上(使用git rev-parse specific_branch_name),如果是,则执行以下操作:
git push ssh://git@remote/path/to/repo
现在我们做了一些愚蠢的事情并推出了一个新的分支(与特定分支在同一个提交中)。钩子推动了这个,并在另一个遥控器上创建了一个新的分支。
现在显然我们需要从另一个远程删除该分支。但是我想知道如何让其他远程拒绝创建新的分支(它应该只有一个特定的分支而没有其他分支)。有没有办法做到这一点?
提前致谢。
答案 0 :(得分:0)
您可以使用update
hook:
此挂钩由远程存储库上的git-receive-pack调用 在本地存储库上执行git推送时发生。就在更新之前 远程存储库上的ref,调用更新钩子。它的退出状态 确定ref更新的成功或失败。
钩子为每个ref更新执行一次,并采用三个参数:
- 要更新的ref的名称,
- 存储在ref中的旧对象名称
- 以及要存储在ref。
中的新对象名更新挂钩的零退出允许更新引用。退出了 非零状态会阻止git-receive-pack更新该参考。
只需检查branchname是否正确并拒绝更新 否则。