您的位置:首页 > 其它

Git多分支开发上线合并问题

2017-08-10 17:15 309 查看
一、项目背景:
项目AB分支同时进行开发时,A分支开发过程中有其他分支B上线,并且B分支上线版本已同步(merge)到master,则须合并已上线版本到正在开发的分支A上,避免A分支上线时覆盖B分支的代码,导致功能倒退。

二、命令行合并步骤:
方案一:
1.克隆配置库到本地:
git clone 【git url】 【本地路径】
2.切换到开发分支A:
git checkout 【开发分支】
3.合并master到开发分支(因为B已经同步到master,于是将master合并到A,保证A上涵盖B以上线的最新代码):
git merge --no-ff master
4.将合并后代码推送到远程库:
git push origin 【开发分支】

以上步即已经完成B分支上线后,将代码同步到master,再将master代码合并给A的操作。根据公司要求,还需要打tag标识。

5.打合并后标签,合并标签命名规则:tag/Tag_git库名_模块名称_三位版本名称_merge_四位版本名称  
例如:tag/Tag_pmo_testgit-dwf_6-0-11_merge_6-0-9-2
git tag -a 【mergetagname】 -m 'create merge tag ,name is 【mergetagname】'
6..将标签推送到远程库:
git push origin 【mergetagname】
7.手工合并完成

方案二:
同事介绍了一个类似于svn client的git工具,可通过UI页面完成以上操作。
1、比较差异
2、解决冲突-对比本地和远端代码,选择两边有效代码分别复制到有效区域,点击“解决冲突”即可。
3、提交分支A代码

三、分支合并

背景:AB分支分别开发两个系统功能,结果将应写到B分支的代码,写到了A分支上。
解决方案:
1、照常将A分支上代码提交,并push到远端。
2、切换到B分支,执行merge操作,将A分支中,开发的代码合并到B上,B提交测试即可。
git
checkout B
git
merge A

ps:后期附送工具下载链接
最后再附送一个万能git提交忽略.setting等文件的配置。拷贝替换本地gitignore文件即可。
# maven ignore
target/

# eclipse ignore
.settings/
.project
.classpath

# idea ignore
.idea/
*.ipr
*.iml
*.iws

# temp ignore
*.log
*.cache
*.diff
*.patch
*.tmp

# system ignore
.DS_Store
Thumbs.db

# package ignore (optional)
# *.jar
# *.war
# *.zip
# *.tar
# *.tar.gz

/log
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐