维护 Git 分支的最佳方式

问题描述 投票:0回答:2

ACME 公司保留了我们扩展和定制的产品 X。他们已经让我们可以看到他们的 git 存储库,但我们无法写入它。 ACME 正在使用他们自己的内部 Git 服务器和 Gitolite。

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

我的想法失去了 ACME 公司的历史。

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

一定有最好的办法。我本质上是想创建一个本地分支并保持更新,同时仍然让我们的开发人员能够提交代码。

git github branch vendor vendor-branch
2个回答
4
投票

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

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

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

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


2
投票

我认为你可以分叉 ACME 存储库。所以现在您拥有对分叉存储库(或本地克隆)的写入权限。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.