对于我的存储库,我使用的是
Git和Stash.在Stash端,我限制(只读)访问master,这样任何用户都可以分支主分支的功能/分支,但不能直接合并到master,除非通过Pull请求完成.
但作为用户,我可能会意外地将我的功能分支合并到主分支并尝试推送主分支.
好处是,推送是不被允许的并且受Stash的限制,但我想知道是否有一种方法可以限制用户在一些钩子的帮助下在本地将任何分支合并到主服务器.
我正在尝试预提交钩子,它们很棒,我想知道是否有类似的东西,比如预合并钩子.
最佳答案
I was wondering if there was a way I could restrict the user to merge any branches to the master locally with the help of some hooks.
Ex-Stash开发人员(不重要).
正如@Zeeker所提到的,您需要让每个开发人员向其本地存储库添加挂钩.事实上,情况比这更糟糕.假设您执行以下操作:
git checkout -b this-is-not-master
...
git commit -m "This is not on master"
但是你这样做:
git push origin this-is-not-master:master
那个用户在什么时候“上”主人?基本上你不能这样做 – 本地分支与远程分支无关,除了有时我们共享相同的名称很方便.如果你需要/想要限制这些东西,我会坚持为Stash添加钩子.