繁体   English   中英

保持Git fork的最佳方法

[英]Best way to maintain a Git fork

公司ACME保留了我们扩展和定制的产品X. 他们让我们的git存储库可见,但我们不能写它。 ACME正在使用他们自己的内部Git服务器和Gitolite。

我们的开发人员想要写它,所以我们需要一个本地副本。 但是,我很高兴保留公司ACME的提交历史记录。 有办法吗? 另外,我应该如何使用公司ACME的代码更新我们的代码? 我们正在使用Github Enterprise。

我的思维方式失去了公司ACME的历史。

  1. 将存储库X克隆到Staging文件夹中。 从ACME公司保持此存储库最新。
  2. 创建新的存储库Y供我们使用。
  3. 在存储库Y中为“原始”代码创建分支。 开发人员会从中分支或分叉。
  4. 将文件从Repository X手动复制到Repository Y的“Original”分支。

必须有一个最好的方法。 我本质上想要创建一个本地fork并保持更新,同时仍然允许我们的开发人员访问提交代码。

这被称为“供应商分支”模式。 (考虑将这些SO标签添加到您的帖子中。)

您还可以在您的代表中嵌入ACME文件:原始的,未更改的ACME代码将存在于其自己的(所谓的“供应商” - )分支中,并将合并为“主”或任何您需要的地方。

每当ACME更改代码时,您都会检查ACME供应商分支并在那里存储更新,使用供应商标签进行标记(这样可以轻松查看内部版本的ACME),并在需要时合并更改。

编辑添加 :了解此机制后,请查看子树合并机制

在我看来,你可以分叉ACME存储库。 所以现在您可以对分叉存储库(或本地克隆)进行写访问。

现在,您可以在此本地存储库中创建一个新分支,以继续开发,同时仍保留与原始只读存储库链接的主分支(或将其重命名为适合您需要的分支)。

这样做,每当您需要将代码更新为ACME存储库中的最新开发时,您只需从该远程处获取更改并将它们合并到您的开发分支。 无需创建该存储库的多个副本。

暂无
暂无

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

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