大家早上好!
我希望大家都有一定的经验,可以指导我正确的方向。如果我在解释这个问题上做得不好,我很抱歉。
我有一个Git存储库,用作我创建的仪表板的外壳(将其称为ShellRepo)。我一直在做的事情是克隆此仓库(将其称为DashboardRepo),然后在每次有新项目时都构建一个仪表板。问题是,如果我发现要对ShellRepo进行更改,则不确定如何更新DashboardRepo以接受新更改,同时还保留我为DashboardRepo项目添加的新文件和自定义项。
我研究了子模块,但是我不确定这是否行得通(或者我可能误解了它们),因为我所做的更改在ShellRepo提供的目录中。我想将文件添加到DashboardRepo中以进行特定的自定义,但是如果我发现并实施了更一般的更改,则允许从ShellRepo更新核心文件。
有解决此问题的建议方法吗?谢谢大家的时间!
最佳答案
您可以保留两个不同的远程URL,一个用于ShellRepo,另一个用于DashboardRepo,并将更改从DashboardRepo移到ShellRepo。
例如,假设:
您已经在master
分支上的DashboardRepo中。
您创建了一个带有哈希a1b2c3
的提交,其中包含一些常规更改,这些更改要专门应用于ShellRepo的master
分支。
我将按照以下步骤操作:
将ShellRepo远程添加到本地存储库:git remote add shell<your remote url>
切换到要将更改应用到的分支:git checkout remotes/shell/master
。
此时,您将处于分离模式,因此让我们使用git checkout -b shell-master
创建本地分支。
现在,应用更改:git cherry-pick a1b2c3
最后,您可以使用以下命令将此更改推送到ShellRepo。
然后,任何时候要移动更改,都可以切换到git push -u shell master
并挑选包含那些更改的提交。