首页 后端 正文

git分支合并代码的四种方式

通过本文可以学习到,好几种分支之间合并代码的方式,让你可能对日后的代码合并不再惧怕。

1、功能分支或者bug分支合并到主分支

有时候我们开发一个功能可能会基于主分支创建新的分支,然后等功能开发完毕后,要合并到主分支。

比如:功能分支位feat/village, 主分支是dev。我们要想将功能分支代码合并到主分支,那么我们首先就要切换到主分支。

// 先切换的dev主分支
git checkout dev

// 将feat/village分支的变更拉取到dev分支上来
git merge feat/village

// 合并完成,即可推送到远程服务器
git push -u origin dev

当然合并代码有时候难免就会有冲突,这个时候我们就需要先解决冲突然,解决完冲突后再进行推送。

一般的冲突可能是这样的:你先拉取代码到你的本地分支,然后其他同事也有可能在改别的功能或者bug,但是他比你早合并代码到远程分支,这样在你完成功能或者修改完代码后,合并到远程分支的时候,很多时候有一些合并会进行自动合并,但也有很多时候有冲突需要手动解决。

同时别人有可能也改过跟你相同的文件,相同的函数,这样就不可避免的就要手动解决冲突。

简单的冲突可能就是:选择你本地的代码、或者选择远程分支的代码、再或者要同时选择本地代码并且要加上远程分支的代码。有时候可能合并之后代码存在问题,有可能要与共同修改的同事进行商量,重写冲突的那几行代码,因为我们可能同时修改实现了两个功能,要考虑如何兼容两个功能的问题。

2、将其他分支的某个提交合并到当前分支

// (正常情况直接合并成功,可能存在重复图需要手动解决)
git cherry-pick  commitid

// 正常情况直接push即可,手动解决冲突需要commit 再进行push
git push

// 扩展阅读:还可以一起提交commitid-A到commitid-B 之间所有的内容修改
// http://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html

commitid 可以通过Git log 来确定

git分支合并代码的四种方式  第1张

3、将其他分支的多个提交一起合并到当前分支

这里其实有两种情况,一种是几个提交是分离的,不连续,没什么关系;另外一种则是几个题提交是连续的。

  • 不连续的合并 简单的方式就是通过上面的方式一个一个的合并,但是有一点麻烦,其实只要稍微变通就可以提交多个

git cherry-pick commitidA commitidB commitidC

git push

  • 连续的合并

    // commitidA的提交时间必须要早于commitidB
    // 这种提交不会包含commitid-A本身

git cherry-pick commitidA..commitidB git push

//如果想包含commtidA也是可以的 git cherry-pick commitidA..commitid B git push

## 4、两个git仓库进行代码和日志记录的合并
```javascript
// git@github.com:aehyok/blog1.git
// git@github.com:aehyok/blog2.git
// 以blog1仓库的main分支为基础,将blog2仓库的main分之合并到blog1仓库的main.

//1.在blog1仓库下添加远程仓库blog2
git remote add blog2 git@github.com:aehyok/blog2.git

//2.在blog1仓库下拉取数据到本仓库
git fetch blog2

//3.根据拉取将远程仓库的blog2的main分支,在本地创建blog2main
git checkout -b blog2main blog2/main

//4.切换回blog1的main分支
git checkout main

//5.将本地分支blog2main合并到main分支
// 这两个仓库本来就是没有关联的,所以要加上参数
git merge blog2main --allow-unrelated-histories

//最后如果没有冲突就结束了
// 如果有冲突就解决一下
git push

5、总结

四种我日常工作中使用过的合并场景,前面三种用过的比较多一点,第四种就用过一次,这些场景你有遇到过嘛?或者你还有其他场景的合并吗?

打赏
海报

本文转载自互联网,旨在分享有价值的内容,文章如有侵权请联系删除,部分文章如未署名作者来源请联系我们及时备注,感谢您的支持。

转载请注明本文地址:https://www.shouxicto.com/article/6238.html

相关推荐

Tomcat安装及配置教程

Tomcat安装及配置教程

通过本文可以学习到,好几种分支之间合并代码的方式,让你可能对日后的代码合并不再惧怕。...

后端 2022.08.25 0 479

Dubbo的SPI机制简介

Dubbo的SPI机制简介

通过本文可以学习到,好几种分支之间合并代码的方式,让你可能对日后的代码合并不再惧怕。...

后端 2022.08.20 0 411

发布评论

ainiaobaibaibaibaobaobeishangbishibizuichiguachijingchongjingdahaqiandaliandangaodw_dogedw_erhadw_miaodw_tuzidw_xiongmaodw_zhutouganbeigeiliguiguolaiguzhanghahahahashoushihaixiuhanheixianhenghorse2huaixiaohuatonghuaxinhufenjiayoujiyankeaikeliankouzhaokukuloukunkuxiaolandelinileimuliwulxhainiolxhlikelxhqiuguanzhulxhtouxiaolxhwahahalxhzanningwennonuokpinganqianqiaoqinqinquantouruoshayanshengbingshiwangshuaishuijiaosikaostar0star2star3taikaixintanshoutianpingtouxiaotuwabiweifengweiquweiwuweixiaowenhaowoshouwuxiangjixianhuaxiaoerbuyuxiaokuxiaoxinxinxinxinsuixixixuyeyinxianyinyueyouhenghengyuebingyueliangyunzanzhajizhongguozanzhoumazhuakuangzuohenghengzuoyi
支付宝
微信
赞助本站