对于我的存储库,我使用的是 Git 和 Stash。在 Stash 端,我限制了(只读)对 master 的访问权限,因此任何用户都可以从 master 分支分支以获取功能/分支,但不能直接 merge 到 master,除非通过 Pull 请求完成。
但作为用户,我可能会不小心将我的功能分支 merge 到 master 分支并尝试推送 master 分支。
好的是,推送是不允许的,并且受到 Stash 的限制,但我想知道是否有一种方法可以限制用户在一些 Hook 的帮助下将任何分支 merge 到本地的 master。
我正在尝试预提交 Hook ,它们很棒,我想知道是否有类似的东西,比如预 merge Hook 。
最佳答案
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 提到的,您需要让每个 开发人员将 Hook 添加到他们的本地存储库。事实上,情况比这更糟。假设您执行以下操作:
git checkout -b this-is-not-master
...
git commit -m "This is not on master"
但是你这样做:
git push origin this-is-not-master:master
用户在什么时候“打开”master
?基本上你不能这样做 - 本地分支与远程分支没有关系,除了有时我们共享相同的名称很方便。如果您需要/想要限制这些东西,我会坚持向 Stash 添加 Hook 。
关于Git 预 merge Hook ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27536159/