ACME 公司保留了我们扩展和定制的产品 X。他们已经让我们可以看到他们的 git 存储库,但我们无法写入它。 ACME 正在使用他们自己的内部 Git 服务器和 Gitolite。
我们的开发人员想要写入它,所以我们需要一个本地副本。不过,我很乐意保留 ACME 公司的提交历史记录。有办法做到吗?另外,我应该如何使用 ACME 公司的代码更新我们的代码?我们正在使用 Github Enterprise。
我的想法失去了 ACME 公司的历史。
一定有最好的办法。我本质上是想创建一个本地分支并保持更新,同时仍然让我们的开发人员能够提交代码。
这称为“供应商分支”模式。 (考虑将这些 SO 标签添加到您的帖子中。)
您还可以将 ACME 工件嵌入到您的代表中:原始的、未更改的 ACME 代码将存在于其自己的(所谓的“供应商”-)分支上,并将合并到“master”或您需要的任何地方。
每当 ACME 更改代码时,您都可以签出 ACME 供应商分支并将更新存储在那里,使用供应商标签进行标记(这可以轻松查看内部的 ACME 版本),并在需要时合并更改。
添加编辑:了解此机制后,请看一下子树合并机制。
我认为你可以分叉 ACME 存储库。所以现在您拥有对分叉存储库(或本地克隆)的写入权限。
现在,您可以在此本地存储库中创建一个新分支以继续开发,同时仍然保留与原始只读存储库链接的主分支(或将其重命名为适合您需要的任何名称)。
这样做,每当您需要将代码更新到 ACME 存储库中的最新开发时,您只需从远程提取它们的更改并将它们合并到您的开发分支即可。无需创建该存储库的多个副本。