伪造您自己的存储库以实现可维护性

时间:2019-03-07 22:52:12

标签: git github

我不确定如何准确地描述问题,因此我将举一个例子,说我有以下内容:

  • RepoA-包含一些基本代码,库,框架,文件夹结构等的原始回购
  • RepoB-理想情况下是分叉/分支...但是不能分叉您自己的存储库,而我想要一个单独的存储库,因此分支不起作用

目标是要在RepoB上进行工作,并能够将merge内部所做的RepoA更改为代码,因此如果在{{1}上开发了新功能}我可以将其合并到RepoA中并继续开发。本质上,它是另一个回购的“分支”。

这有可能吗?

我也考虑过也许可以使用NPM来获得此功能,但是我完全不确定如何/如何与NPM一起使用,我在公司项目上所做的所有工作都只有一个仓库和功能分支,所以我从来没有遇到过这个问题。

编辑:根据评论

这个想法是用我在多个项目中经常使用的所有东西(例如样板,UI组件,空白服务器,路由器配置)设置一个仓库结构,基本上创建一个没有任何功能的“框架”,除了可以建立的“工作环境”。

然后,对于每个项目,由于缺乏更好的词汇,我将创建一个特定的存储库并拖动到框架中。但是我希望能够将可能在以后添加到框架中的其他内容“合并”到仓库中。

我不想分支此框架存储库,因为我希望github上的存储库是分开的。我会以某种方式添加某种形式的依赖关系甚至使用NPM都很好,但是我不知道我将如何使用NPM。

1 个答案:

答案 0 :(得分:1)

因此,在对Mohana Rao的建议进行了一些摆弄之后,我设法获得了所需的东西。

一次性使用

例如,我们在RepoB内部完成所有工作,例如在主分支上:

git remote add base <link-to-RepoA>
git checkout -b new-feature-import
git pull base master --allow-unrelated-histories
git checkout master
git merge new-feature-import
git branch -D new-feature-import

保存以备将来使用:

git remote add base <link-to-RepoA>
git fetch base
git checkout -b base-integration
git branch --set-upstream-to=base/master
git pull --allow-unrelated-histories
git checkout master
git merge base-integration

使用第二种方法,您可以在以后切换到分支,只需进行拉动即可获取最新的更改。显然,您必须解决任何合并冲突,并且如果您选择使用这种“更方便”的解决方案,则显然不应该从base-integration分支推回到RepoA