对项目使用“基础”存储库?

时间:2019-04-17 14:03:15

标签: javascript git github

早上好!

我希望你们所有人都有一定的经验,可以指导我正确的方向。抱歉,如果我在解释这件事时做得不好。

我有一个Git存储库,用作我创建的仪表板的外壳(将其称为ShellRepo)。我一直在做的事情是克隆此仓库(将其称为DashboardRepo),然后在每次有新项目时都构建一个仪表板。问题是,如果我发现要对ShellRepo进行更改,则不确定如何更新DashboardRepo以接受新更改,同时还保留我为DashboardRepo项目添加的新文件和自定义项。

我研究了子模块,但是我不确定这是否行得通(或者我可能误解了它们),因为我所做的更改在ShellRepo提供的目录中。我想将文件添加到DashboardRepo中以进行特定的自定义,但是如果我发现并实施了更一般的更改,则允许从ShellRepo更新核心文件。

是否有解决此问题的建议方法?谢谢大家的时间!

1 个答案:

答案 0 :(得分:1)

您可以保留两个不同的远程URL,一个用于ShellRepo,另一个用于DashboardRepo,并将更改从DashboardRepo移到ShellRepo。

例如,假设:

  • 您已经在master分支的DashboardRepo中。
  • 您创建了一个带有哈希a1b2c3的提交,其中包含一些常规更改,您希望将这些更改专门应用于ShellRepo的master分支上。

我将按照以下步骤操作:

  1. 将ShellRepo远程添加到本地存储库:git remote add shell <your remote url>
  2. 切换到要将更改应用到的分支:git checkout remotes/shell/master
  3. 此刻,您将处于分离模式,因此让我们使用git checkout -b shell-master创建本地分支。
  4. 现在让我们应用更改:git cherry-pick a1b2c3
  5. 最后,您可以使用git push -u shell master将此更改推送到ShellRepo。

然后,只要您想移动更改,就可以切换到shell-master并挑选包含这些更改的提交。