我正在为内部公司目的开发CMS,但我们在不同的网站上安装了很多CMS,主要区别在于模板,html等。
所以我有一个主分支,其中包含CMS的纯安装,然后是从主服务器分叉的多个安装。
因此,当我发现在一个分支机构中工作的bug时,我现在该怎么办?最后我想修复所有安装和主人的错误。我的建议是:
切换回master并进行更改,然后合并回分支 问题: 1)我没有掌握必要的情况,我不能在master上测试它,所以我需要重复切换分支并合并 2)也许我会合并我不想要的变化。
我想做的是: 我发现了一个错误,所以我想说:现在我正在处理bug以及我想要记录的所有更改并在任何地方重新应用(但在此声明之前我没有做出任何更改)
有可能吗?
编辑:也许这并不是完全显而易见的,但CMS拥有它需要为每个网站(模板等)进行更改的核心和部分,核心是在特定安装之间几乎不会改变的部分这是我需要修复错误的地方。答案 0 :(得分:1)
您实际计划的将导致灾难。您必须将每个新功能或错误修复合并到每个分支。版本控制将变得很糟糕。过了一会儿,你会迷失在树枝上。失去了......失去了..... l ......
你还在吗? :)以灵活的方式对应用程序进行编码,以便可以使用应用程序配置(而不是不同的分支)配置为在多个方案中工作。 Dependency Injection是你应该阅读的内容。
答案 1 :(得分:0)
如果我没有弄错你正在寻找git cherry-pick
来自帮助:
git-cherry-pick - Apply the changes introduced by some existing commits
这用于从不同分支到您正在处理的分支中获取修复。修复程序需要在单独的提交中隔离,但这样才能顺利运行。