我使用git来开发和维护我的应用程序。为少数客户管理应用程序
我有一个问题,因为我的应用程序使用,以5个客户和他们每个人都有自己的配置,如标识,一些特殊的功能,CONFIGS等等
现在我写了新的组件和需要将此组件添加到每个客户端实例,我不知道如何正确执行此操作。
现在每个客户都在不同的分支上,我知道这是不好的选择。
如果我需要更新应用程序,我需要将代码复制并粘贴到每个客户端并将其推送到回购站。
我知道这是非常薄弱的,但如何正确地做到这一点?
我使用git来开发和维护我的应用程序。为少数客户管理应用程序
我有一个问题,因为我的应用程序使用,以5个客户和他们每个人都有自己的配置,如标识,一些特殊的功能,CONFIGS等等
现在我写了新的组件和需要将此组件添加到每个客户端实例,我不知道如何正确执行此操作。
现在每个客户都在不同的分支上,我知道这是不好的选择。
如果我需要更新应用程序,我需要将代码复制并粘贴到每个客户端并将其推送到回购站。
我知道这是非常薄弱的,但如何正确地做到这一点?
在密封底座之前,您可能不应该将应用程序分支到5个不同的分支。但是,如果他们不太远的分歧,你有三种可能性:
应用更改,创建了一个补丁(git diff > patch
),复位(这样你就可以检查出),并应用在你的五个院院长(git apply patch
),
叉从master
一个新的分支,应用相应的修改,提交和git cherry-pick
,在每个分支机构的承诺(为1相同的效果),然后删除多余的分支,
将更改应用于master
和然后git rebase
你的分支在此之上。这有一个好处,即编辑将是所有五个共同的单一提交。 See here实际引入重组。
1和2将您新提交的独立副本放在五个分支历史记录的顶部。 3次尝试在分叉之前挤压新的提交。后者的一个副作用是从该日起的所有提交必须重新重建,因为不能修改现有提交的父代。必须强制每个分支在3之后首次推送到存储库。详细信息都在链接文档中讨论。
请注意,如果您做出了一些与您想要更新的内容相冲突的更为激烈的更改,那么这三种方式将会以不同的方式失败,因此很有必要做好准备。
在其默认设置中只会立即拒绝修补程序,不作任何更改。您需要进一步调查为什么它不适用,或者使用相对安全的--reject
(请先阅读手册)。
将装点故障点与<<<<<<<
=======
>>>>>>>
就像一个失败的git merge
和你需要解决冲突并重新提交,或中止操作(它给你的建议是什么命令来使用)。
会产生一些看起来很恐怖的冲突消息,你可能会结束更新中的几个提交。再次,git
会试图帮助如何继续。
你总是有git reset --hard
,git cherry-pick --abort
和git rebase --abort
如果出现问题,以帮助您。如果您对使用它们感到不舒服,您也可以在对其进行更改之前制作每个分支机构当前状态的副本(git branch backup
),然后将所有内容都退回git reset --hard backup
。