繁体   English   中英

设置公共Git回购

[英]Setting Up a Public Git Repo

我的团队在过去几个月中一直在开发平台,我们已经准备好将其发布给公司的其他成员。 我们希望遵循在此处找到的“集成管理器工作流”: http : //git-scm.com/book/en/Distributed-Git-Distributed-Workflows

我们在团队存储库中有一些专有代码,我们不希望与公司的其余部分共享,因此必须创建当前团队存储库的“精简版本”。 我正在做以下事情:

  1. 克隆我们现有的团队存储库以创建“集成管理器存储库”

  2. rm所有专有文件

  3. commit rms

  4. rebase -i --root所有提交并防止倒带

  5. clone --bare “集成管理器clone --bare ”以创建“祝福clone --bare

现在,由于对Git相对缺乏经验,因此对于此方法,我有两点不确定:

  1. 我还能从“祝福回购”拉入我们的团队回购吗?

  2. 假设我可以做#1,我认为rms将被删除,并删除我们所有的专有文件。 我需要Git来将我们的团队存储库的高级状态视为有福存储库的子状态。 这是我可以重新设置的功能吗?

  3. 当我们继续在平台上工作时,我们将致力于团队回购“公共”功能和专有功能的混合体。 仅推送“公开”功能的最佳方法是什么? 我能rebase改变提交的秩序,使“公共”功能提交处于提交历史的前面,然后混帐推只到最新的“公共”特性的SHA承诺?

预先感谢您的帮助...在进行如此大的更改之前,我想由一些更有经验的Git用户来运行。

更新抱歉,我不清楚...第2、3和4步都打算应用于“集成管理器仓库”。 无论如何,我都阅读了一些有关重新设置rebase并决定,每次我们进行“公开”更改时,对团队的共享存储库进行rebase都不是一个好主意。

我结束了,而不是做的步骤2,3和4是rm在“整合经理回购”的git的文件夹,并开始了新的与git init 然后我退出了这个新的“集成管理器仓库”,并使用-s ours标志将其与我们团队的仓库合并,因为我们团队的版本是超集。 现在,我们的团队存储库和公共存储库具有共同的承诺。 我在团队存储库中创建了一个“公共”分支,并将其指向此常见提交。 展望未来,每当我们进行公共更改时,都需要将其放入该“公共”分支中,然后将其转移到“集成管理器仓库”中。

你将不能够pull从回购祝福变化给球队一个(因为他们是rebase d),但你也许可以cherry-pick它们。 当然,冲突可能是您日常工作的一部分。

当您压缩了rm ,您的祝福仓库将根本看不到这些rm的执行情况。 因此,每当您cherry-pick那些提交cherry-pick到团队仓库中时,您将拥有永不更改的文件(以及可能产生的麻烦)。

问题将是将更改从团队存储发布回受祝福的存储:)

如果我是你(嗯,前段时间我也处于类似的位置),那么我会考虑创建任何一种将更改从一个存储库移动到另一个存储库的脚本。 从受祝福的一个转到团队一个时,请根据已更改的文件(如果有),对您可能希望查看的相关rm文件发出一些警告。 返回时,排除对rm文件的更改。

无论如何,我根本不认为这是个好主意。 在疯狂之前进行三重检查-也许从婴儿步开始?

祝好运 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM