我在一个名为project
的项目上编码,现在它已经完成了一半。
但此时此刻,我被问到另一个名为project-cn
的项目,与project
相同的80%,但仍有不同的功能需要开发。
master-cn
的 master
分支的新分支 project
; project-cn
下发展master-cn
的独特功能; master
分支,开发两者的新常用功能; master-cn
。 project-hk
/ \
/ \
master master-cn
/ \
/ \
add feature-hk-1 add feature-cn-1
| |
| |
add feature-hk-2 add feature-cn-2
| |
| |
| feature-both |
| / \ |
|merge/ \merge|
| / \ |
| / \ |
| / \ |
| / \ |
master master-cn
我该怎么办? feature-both
来自哪里?一个新的分支?基于何处?
答案 0 :(得分:1)
我认为维护master
分支和master-cn
分支是一个好主意。
只能在master
上提交可以在两个分支上生效的提交。在master
上添加功能后,将其合并到master-cn
分支。
最后,当master-cn
完成后,将其合并回master
,以便master
实际上变为feature-both
。
这一步:
手动将新功能修改复制到master-cn。
我会这样做:
git checkout master-cn
git merge master
但是,如果master
上的提交无法转到master-cn
,您可能希望cherry-pick
个人提交:
git checkout master-cn
git cherry-pick a2j233 # sha
git cherry-pick vsdd3f # sha