我有一个项目,我正在使用git来控制它的版本。现在,我将开始研究一个2.0版本,它将在我们完成后上传到服务器。 所以,我决定创建一个新的分支来开发2.0版本。
我的问题是:由于主分支始终修复了错误,我需要将此更改上传到服务器而不上传与2.0版相关的更改。
你是如何做到的?我能找到的最佳解决方案是使用git archive
提取主分支,而不对分支版本2.0进行更改。这真的是最好的解决方案吗?
答案 0 :(得分:1)
AFAIU分支master
是唯一需要上线的分支。
因此,每次向分支master
添加新的错误修复时,您需要将其重新绑定到新分支中。这样,您的新分支已包含修复程序。
最后,您可以使用master
上传git archive
的更改,以避免同时发送您的.git
。
答案 1 :(得分:1)
将您的master
分支视为生产代码。你修复了错误。
并且考虑一下你的master_2_0
分支作为分支,将在某一天进行生产。在那里你开发了新的酷功能。
现在,当您在master_2_0
中进行了一些开发并修复了master
中的一些关键问题时,您应该进行合并。在合并之前确保您的本地分支master
和master_2_0
处于实际状态
git checkout master_2_0 #switch to master_2_0 branch
git merge master # merge branch `master` into master_2_0
master
的修正方式将转到master_2_0
。如果更改代码的相同部分,有时可能会出现合并冲突。你应该仔细解决它们。
因此,合并将保留master
分支,同时保持master_2_0
分支更新来自master
的修补程序。
您应该仅部署到生产master
分支。这取决于你如何部署。通常使用git clone
指定要签出的分支(默认为master
)。
git archive
也适合您,它还允许指定您要归档的分支。