我想强迫其他团队成员不要在主分支上工作,而是在开发分支上工作。我们有一个中央 git 存储库,我们将工作推入其中。我想知道是否可以阻止用户将更改推送到主分支,但只允许某些用户这样做。
我想要以下“工作流程”
- 开发总是只在开发分支上完成
- 发布经理负责主分支,只有他可以将开发分支中的内容合并到主分支中,并将其推送到中央存储库上的主分支。
这可能吗?我怎样才能做到这一点?
我想强迫其他团队成员不要在主分支上工作,而是在开发分支上工作。我们有一个中央 git 存储库,我们将工作推入其中。我想知道是否可以阻止用户将更改推送到主分支,但只允许某些用户这样做。
我想要以下“工作流程”
这可能吗?我怎样才能做到这一点?
请参阅man githooks
:在共享存储库中,您可以创建一个$(git rev-parse --git-dir)/hooks/pre-receive
或$(git rev-parse --git-dir)/hooks/update
脚本来验证您的用户尝试推送到哪些 refs。Git 附带了一个执行 per-ref ACL的更新偏执示例钩子。
我的低级方法只是让 RM 成为唯一一个使用 SSH 密钥推送到其他人用作主基线的存储库的人。这样,除了 RM 之外,没有人可以推动掌握 - 但是每个人都可以工作,因为他们有自己的本地开发分支,并且开发人员可以在他们自己之间共享他们喜欢的分支。
下一步是为即将进入master的东西制作一个烹饪锅测试仪。这个底池通常被称为next
or dev
。这个想法是,一个分支的影响越大,它在合并到 master 之前的时间就越长。这让 RM 可以完全控制哪些分支应该毕业,并且仍然让每个人都知道。