公司ACME保留了我们扩展和定制的产品X.他们让我们的git存储库可见,但我们不能写它。 ACME正在使用他们自己的内部Git服务器和Gitolite。
我们的开发人员想要写它,所以我们需要一个本地副本。但是,我很高兴保留公司ACME的提交历史记录。有办法吗?另外,我应该如何使用公司ACME的代码更新我们的代码?我们正在使用Github Enterprise。
我的思维方式失去了公司ACME的历史。
必须有最好的方法。我本质上想要创建一个本地fork并保持更新,同时仍然允许我们的开发人员访问提交代码。
答案 0 :(得分:2)
这被称为"供应商分支"图案。 (考虑将这些SO标签添加到您的帖子中。)
您还可以在您的代表中嵌入ACME文字:原始的,未更改的ACME代码将独立存在(所谓的"供应商&#34 ;-)分支,并将合并到'主'或者无论你需要它。
每当ACME更改代码时,您都会检查ACME供应商分支并在那里存储更新,使用供应商标签标记(这样可以轻松查看内部版本的ACME),并在需要时合并更改。
编辑已添加:了解此机制后,请查看subtree merge mechanism。
答案 1 :(得分:1)
在我看来,你可以分叉ACME存储库。所以现在你可以对forked存储库(或本地克隆)进行写访问。
现在,您可以在此本地存储库中创建一个新分支,以继续开发,同时保持与原始只读存储库链接的主分支(或将其重命名为适合您需要的分支)。
这样做,每当您需要将代码更新为ACME存储库中的最新开发时,您只需从该远程处获取更改并将它们合并到您的开发分支。无需创建该存储库的多个副本。