我是一个拥有 GitHub 存储库的项目的提交者。我有一个开发人员小组,他们无法读取或提交该存储库。我想设置一个他们可以提交的 git 服务器,它是 GitHub 存储库的克隆。当他们提交时,我会对其进行审查,有时进行编辑,然后推送到 GitHub 存储库。
我的问题是,由于我有时会更改他们的提交,因此将更改从 GitHub 拉回到我的克隆服务器以便每个人的历史记录都不会混乱的最佳工作流程是什么?
编辑:澄清一下,我并不一定意味着提交将被编辑。但我可能需要删除/拒绝一些提交的提交(并且可能创建新的提交来改进它们)。这将如何影响我下游的开发人员?
如果我没记错的话,Linux 的管理方式与您提议的有点不同,因为大量开发人员积极为各种子系统做出贡献。
每个主要的内核子系统都有一个“副官”,负责协调对该子系统做出贡献的开发人员的提交。每个副官都保证他们的子开发人员的质量,并在他们准备好从他那里进行更改时告诉 Linus。 Linus 是唯一有权提交“主”存储库的人,然后一次拉取他们的更改。如果乔中尉和鲍勃中尉发生冲突,他会告诉乔从鲍勃那里拉出来并负责合并,然后他会再次从乔那里拉出来。
对于你的情况,我认为你所描述的情况是理想的。所有开发人员都可以拉/推的公共远程存储库,这使他们能够处理冲突和合并。除了合并提交之外,实际上没有任何需要更改提交,这应该为您完成。如果您需要更改代码,您可以创建新的提交并将其推送到公共 git 存储库以供开发人员下载。
我不知道是否有任何安全的方法来更改多个存储库中存在的提交。一旦您这样做,您的存储库就会出现分歧,并且您将无法在没有其他信息的情况下进行推/拉操作跳圈 https://stackoverflow.com/questions/559917/git-rebase-and-git-push-non-fast-forward-why-use/559971#559971.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)