我一直在尝试环绕树枝模型。 我一直在寻找 < a href=" http://nvie.com/ posts/ a-successful-git-branching-model/" rel="noreferr" > http://nvie.com/ posts/a-successful-git-branching-model/ 来寻找一些想法,从Subversion来,我真正期待的一件事是改变一个地方,并将其合并到需要它的所有分支。在Subversion中,我们最终做了很多代码的复制。
然而,我仍然无法完全理解这一点。 这是我拥有的一种标准的工作流程类型,它总是会引发冲突。
# create new version branch
git checkout master
git checkout -b v3
vim pom.xml # change branch version to "3.1-SNAPSHOT"
git commit -a
git checkout master
vim pom.xml # change master version to "4.0-SNAPSHOT"
git commit -a
因此,硕士是4.0-SNAPSHOT 和分支是3.1-SNAPSHOT。
我不想在树枝上做个热字 然后把它移到后备箱里
git checkout v3
git checkout -b hotfix
vim file.txt # make a bugfix change
git commit -a
git checkout v3
git merge hotfix # this works fine
git checkout master
git merge hotfix # this has a conflict since both branches have changed the version
我理解为什么它会发生,而且它也有道理。 是否有更好的方法这样做呢?
我读过樱桃选手的书,
git checkout v3
git cherry-pick a518b0b75eaf28868
git checkout master
git cherry-pick a518b0b75eaf28868
但是,这看起来不像是"正确"的处理方式。有什么建议吗?