如何管理提交者的层次结构(如Linux内核开发) [英] How to manage a hierarchy of committers (like Linux kernel dev)

查看:149
本文介绍了如何管理提交者的层次结构(如Linux内核开发)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是一个使用GitHub仓库的项目的提交者。我有一小组开发人员无法读取或承诺回购。我想设置一个他们可以承诺的git服务器,它是GitHub仓库的克隆。当他们提交提交时,我会检查它们,有时进行编辑,然后推送到GitHub仓库。



我的问题是,由于我有时会改变它们的提交,什么是最好的工作流程,从GitHub的变化回到我的克隆服务器,以便每个人的历史不会混乱?



编辑:澄清,我不必然意味着提交将被编辑。但是我可能需要删除/拒绝一些提交的提交(也可能创建新的提交提交)。如何影响我下游的开发人员?

解决方案

由于大量开发人员积极参与各种子系统,所以提出了一些建议。

每个主要的内核子系统都有一个中尉,负责协调开发人员的贡献该子系统。每个中尉都会为他们的子开发者提供质量保证,并告诉Linus他们有什么变化可以从他那里拉动。 Linus是唯一提供访问主回购权的人,然后逐个提交他们的更改。如果乔和鲍勃中尉有冲突,他会告诉乔从鲍勃那里撤下,并负责合并,然后他会再次从乔拉开。



对于你的情况,我认为你描述的是理想的。一个公开的远程回购,您的所有开发人员都可以进行推送/推送,从而使他们能够处理冲突和合并。除了合并它们之外,实际上没有必要改变它们,这应该为你完成。如果您需要更改代码,您可以创建新的提交并将它们推送到公共git库,以供开发人员下载。



我不知道是否有是任何安全的方式来改变存在于几个存储库中的提交。只要你这样做,你的仓库已经分歧,你不能推动/拉动没有跳过篮球


I'm a committer on a project with a GitHub repo. I have a small team of developers who can't read from or commit to that repo. I'd like to setup a git server they can commit to that is a clone of the GitHub repo. When they make commits, I will review them, sometimes make edits, then push to the GitHub repo.

My question is, since I'll sometimes be altering their commits, what is the best workflow for pulling changes from GitHub back to my clone server so that everyone's history doesn't get messed up?

EDIT: To clarify, I don't necessarily mean that commits will be edited. But I may need to delete/reject some submitted commits (and maybe create new ones that improve them). How will that affect the developers downstream of me?

解决方案

If I recall correctly, Linux manages things a bit differently than you're proposing, due to the massive number of developers actively contributing to various subsystems.

Each major kernel subsystem has a "lieutenant", responsible for wrangling the commits of the developers contributing to that subsystem. Each lieutenant vouches for the quality of their sub-developers, and tells Linus when they have changes ready from him to pull. Linus, the only person with commit access to the "master" repo, then pulls their changes one at a time. If there are conflicts from Lieutenants Joe and Bob, he'll tell Joe to pull from Bob and take care of the merge, then he'll pull again from Joe.

For you situation, I think what you describe is ideal. A public remote repo that all your developers can pull/push to, which allows them to handle conflicts and merges. There isn't really any need to alter the commits beyond merging them, which should be done for you. If you need to change the code, you can create fresh commits and push them to the public git repo for your developers to pull down.

I don't know if there is any safe way to alter commits which exist in several repositories. As soon as you do this, your repositories have diverged and you're not going to be able to push/pull without jumping through hoops.

这篇关于如何管理提交者的层次结构(如Linux内核开发)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆