说明:我的代码仓库分了两条分支master(主分支)、develop(开发分支),develop用于直接开发,master用于保存正式版本
合并代码前需要做以下操作:
1. 将代码更改提交到develop分支并push到远程仓库 2. 切换到master分支pull最新代码
1、发布正式版本Release
#切换到develop分支
git checkout develop
#根据develop分支创建临时分支release-1.1.0
git checkout -b release-1.1.0 develop
#切换到master分支
git checkout master
#合并临时分支release-1.1.0代码
#--no-ff:不使用fast-forward方式合并,保留分支的commit历史
#--squash:使用squash方式合并,把多次分支commit历史压缩为一次
git merge --no-ff release-1.1.0
#冲突还原
git merge --abort
#将合并的内容推送到远程仓库
git push
#修改master 分支的版本号
mvn versions:set -DnewVersion=1.1.0
#将修改的版本号推送到master分支
git add -A
git commit -a
git push
#修改develop分支的项目版本号
mvn versions:set -DnewVersion=1.1.0
git add -A
git commit -a
git push
#删除临时分支release-1.1.0
git branch -d release-1.1.0
#如果远程分支已经提交到了代码仓库通过以下命令删除
git push origin --delete release-1.1.0
#为本次的合并打tag
git tag -a v1.1.0 master
git push --tags
2、发布补丁版本hotfix
#根据主分支拆创建临时分支hotfix-1.1.1
git checkout -b hotfix-1.1.1 master
#切换到主分支
git checkout master
#将临时分支hotfix-1.1.1的代码合并到主分支
git merge --no-ff hotfix-1.1.1
#如果只是提交hotfix中的部分更新
git cherry-pick xxx(xxx为刚刚commit的ID)
#如果cherry-pick过程中出现冲突,解决冲突后--continue继续cherry-pick的过程
#--abort放弃合并回到操作前的状态
#--quit退出cherry-pick大拿hi不会到操作前的状态
git cherry-pick --continue
git push
#修改master分支的项目版本号
mvn versions:set -DnewVersion=1.1.1
git add -A
git commit -a
git push
git push
#切换到develop分支
git checkout develop
#将临时分支hotfix-1.1.1的代码合并到develop分支
git merge --no-ff hotfix-1.1.1
git push
#修改develop分支的项目版本号
mvn versions:set -DnewVersion=1.1.2-SNAPSHOT
git add -A
git commit -a
git push
#删除临时分支hotfix-1.1.1
git branch -d hotfix-1.1.1
#如果远程分支已经提交到了代码仓库通过以下命令删除
git push origin --delete hotfix-1.1.1
#为本次的合并打tag
git tag -a v1.1.1 master
git push --tags