我怀疑git
和git-flow
。
我正在开发一个更大的软件开发项目,我正在使用git(使用git-flow)进行版本控制。一切正常......
但是,在下个月我们必须处理更大的迁移到另一个应用程序服务器,因此我们必须在源代码中执行很多特定于应用程序服务器的更改。
迁移过程需要更长时间,因此我需要有可能维护(修补程序,......)两个应用程序服务器的源代码。
示例(日常业务):
现在,我不知道哪种方法可以解决这个问题? 分支或分叉或其他什么?
答案 0 :(得分:2)
分叉会产生一个新的存储库,我认为你不想在这里做。
如果您要继续使用gitflow,则需要按照创建修补程序的步骤进行操作。 https://danielkummer.github.io/git-flow-cheatsheet/#hotfixes
如果您要继续为当前服务器提供功能请求,您可能会发现为新服务器使用单独的分支可能会更好。只需确保它与您当前服务器所做的更改保持同步。
答案 1 :(得分:1)
我创建了一个新的分支,仍然使用" old"分支作为您的主要"将被释放"分支(直到最新的工作完成)。
我会对新分支进行新的更改,因为那些需要保持分离的更改,但是如果我需要执行任何修补程序,我会修复主分支,然后将这些更改挑选到新分支。
新分支完成后,我会合并回主分支并从那里继续。
道歉,如果这太模糊,我不能全面了解你的项目。
答案 2 :(得分:0)
经过一些进一步的调查,我发现了一个完美的解决方案,可以使用git-flow
和多个并行版本(感谢作者):
如果您想修复旧版本的错误或进行其他任何开发 那里,您将从相应的提交中分叉支持分支 master(你将在那里创建所有版本)......
Git-flow and master with multiple parallel release-branches
其他一些有用的链接:
Following git-flow how should you handle a hotfix of an earlier release?
https://groups.google.com/forum/#!msg/gitflow-users/I9sErOSzYzE/AwVH06CuKT0J
我的git-flow存储库的状态:
develop
(新应用服务器正在进行中)master
(最后稳定版)v3.0.0
(旧生产服务器的最终版本)如果报告旧生产服务器中的错误,我必须执行以下操作:
使用此git命令将hotfix
添加到早期版本中:
git flow support start 3.x 3.0
git flow hotfix start 3.0.1 support/3.x
现在进行更改,然后完成:
git flow hotfix finish 3.0.1
如果需要将修补程序移植到主开发线 (由
master
和develop
表示),只需启动修补程序, 樱桃 - 选择你的更改并完成修补程序。
多数民众赞成......:)
感谢所有提到的贡献者。