繁体   English   中英

Git-如何使用特定的远程分支作为存储库的上游源?

[英]Git - How can I use a specific remote branch as the upstream source for a repository?

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

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

我想做的是以下几点:

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

简而言之,我想进行某种“存储库继承”,以便在基类发生更改时,子项目可以获取更新。

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

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

如果您确实需要MyBaseRepo两个分支, MyBaseRepo可以这样做:

  • 初始化一个空的仓库:

$ git init

  • 进行提交以初始化master

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

$ git remote add MyBaseRepo the_repo_location $ git fetch MyBaseRepo

  • 然后,在需要时合并:

$ git merge MyBaseRepo/master

要么

$ git merge MyBaseRepo/mybranch

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

暂无
暂无

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

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