0

也许我正在考虑一个糟糕的工作流程,但我们开始吧。我有一个项目,我想将其用作其他项目的基础,因为它们都保持相同的结构并共享公共类。这样的基础项目存储在它自己的 Git 存储库中(我们称之为MyBaseRepo),其中存在两个分支:

  • master,包含一个非常精简的项目版本。
  • mybranch,包含 master 中包含的所有内容,以及更具体的类。

我想做的是以下几点:

  • 创建一个新项目,例如MyNewProject ,从MyBaseRepo克隆两个分支之一。
  • 创建一个新的MyNewProjectRepo Git 存储库作为新项目的源。
  • 将与MyNewProject的实施相关的所有更改推/拉到MyNewProjectRepo
  • MyBaseRepo更新时,从相应的分支获取更改。

简而言之,我想建立某种“存储库继承”,这样当基类发生变化时,子项目可以得到更新。

到目前为止,我几乎可以通过在需要时获取MyBaseRepo然后将适当的MyBaseRepo/branchMyNewProject master(或任何MyNewProject分支)合并来完成上述操作。这是正确的做法,还是我让我的生活变得比它应该的更复杂?提前感谢您的答案。

4

1 回答 1

0

我认为您描述问题的方式(除了两个分支部分),您可以使用git submodules。有了它,您项目的每个修订版都将绑定到子模块的特定修订版。

如果你真的需要这两个分支MyBaseRepo,我会这样做:

  • 初始化一个空仓库:

$ git init

  • 进行提交以初始化master

  • 将远程 MyBaseRepo 添加到新仓库:

$ git remote add MyBaseRepo the_repo_location $ git fetch MyBaseRepo

  • 然后,在需要时,合并:

$ git merge MyBaseRepo/master

或者

$ git merge MyBaseRepo/mybranch.

但我会选择子模块。这是一个“更干净”的解决方案 - 您只需更新子模块,而不是从远程分支合并。

于 2013-09-12T22:06:38.577 回答