1. git cherry-pick与git rebase
进行两个独立分支的代码合并时有两个比较常用的命令,分别是git cherry-pick <commit-id>git rebase
cherry-pick主要可以用于拷贝某个单独的patch,它的灵活性更大,而rebase主要用于整个分支的一次性合并。git rebase的使用语法为:
git rebase <upstream-branch-name> <to-branch-name>

执行上述命令的过程为:
  1. 切换到to-branch分支;
  2. 将to-branch中比upstream-branch多的commit先撤销掉,并将这些commit放在一块临时存储区(.git/rebase);
  3. 将upstream-branch中比to-branch多的commit应用到to-branch上,此刻to-branch和upstream-branch的代码状态一致;
  4. 将存放的临时存储区的commit重新应用到to-branch上;
  5. 结束。
执行完上述第3步后,to-branch的代码状态已经改变,接着执行第4步时则可能会产生合并冲突。
2. 合并冲突的解决办法
解决合并冲突几个常见的办法是:
  1. 手动编辑冲突文件,手动删除或者保留冲突的代码;
  2. 对于“both added”、“both deleted”、“both modified”等类型的冲突,若想完整地保留某一方的修改可以执行git checkout --ours(或者--theirs) <文件名>来选择想要保留的版本。需要注意的是由于git rebase 是先撤销再应用commit,所以这里的ours指的是upstream-branch,theirs指的是我们将要应用的临时commit。
  3. 对于“added by us/them”、“deleted by us/them”等类型的冲突需要使用git rm <file-name>和git add <file-name>来删除/添加file。在此过程中需要特别注意谁是us,谁是them。
冲突解决完之后,使用git add <file-name>来标记冲突已解决,最后执行git rebase --continue继续。如果中间遇到某个补丁不需要应用,可以用下面命令忽略:
git rebase --skip

如果想回到rebase执行之前的状态,可以执行:  
git rebase --abort

转载于:https://www.cnblogs.com/blackeyes/p/7636768.html

git rebase 的常见冲突及解决办法相关推荐

  1. git bash、eclipse中git插件提交出现冲突以及解决办法

    git bash提交到本地仓库后,执行git push origin时报错 error: failed to push some refs to 'https://github.com/XiangNo ...

  2. ios 静态库冲突的解决办法

    参考:http://www.cnblogs.com/machao/p/5288460.html ios 静态库冲突的解决办法 最近在做一个 iOS 的 cocos2d-x 项目接入新浪微博 SDK 的 ...

  3. [git] your branch is ahead of ... 解决办法

    [git] your branch is ahead of ... 解决办法 出现该问题表示在次之前已经有X个commite了,执行命令 git reset --hard HEAD~X 解决其中X表示 ...

  4. 金蝶专业版过账提示运行时错误5_金蝶专业版过账提示运行时错误5_金蝶KIS专业版常见故障及解决办法...

    金蝶KIS专业版常见故障及解决办法 金蝶KIS专业版常见故障有哪些你知道吗?你对金蝶KIS专业版常见故障了解吗?你知道如何解决金蝶KIS专业版常见故障吗?下面是yjbys小编为大家带来的关于金蝶KIS ...

  5. Android 常见异常及解决办法

    Ø  前言 本文主要记录 Android 的常见异常及解决办法,以备以后遇到相同问题时可以快速解决. 1.   java.lang.NullPointerException: Attempt to i ...

  6. office2016和Visio2016安装冲突的解决办法(后附安装包链接)

    office2016和Visio2016安装冲突的解决办法 不管是先安装好office2016再安装Visio2016,还是先安装Visio2016再安装office2016,这两种方法在安装后者的时 ...

  7. Linux(Ubuntu)下WiFi网卡(intel ax201)驱动与Nvidia显卡驱动冲突的解决办法

    Linux(Ubuntu)下WiFi网卡(intel ax201)驱动与Nvidia显卡驱动冲突的解决办法 环境: 系统 Ubuntu 22.04 LTS 网卡ax201(微星b660m迫击炮wifi ...

  8. QQ2005Beta3与输入法组件冲突的解决办法(转)

    QQ2005Beta3与输入法组件冲突的解决办法(转) 关于输入法与QQ2005beta3冲突的问题,腾讯官方已经给出了解决建议,请看―― 尊敬的QQ用户: 大家好!首先感谢大家选用了QQ的最新版:Q ...

  9. VS2019运行OpenGL时出现的常见错误及解决办法

    OpenGL程序在低版本的VS中运行成功,但在VS2019中运行却出现各种错误,以下是常见错误的解决办法.(文章结尾有库的链接哟~) 问题一:无法打开文件"glaux.lib" 解 ...

最新文章

  1. 解读dbcp自动重连那些事---转载
  2. eclipse查看git地址_Git大文件管理:函数计算和OSS支持的Git LFS服务器
  3. 版本对应关系python TensorFlow+Keras
  4. 内温的整体优先效应实验_[心理学复习.doc
  5. 查询出各个学科的前3名的同学信息的Sql
  6. 你是如何找到自己的第一份测试工作的?
  7. echarts柱状图的数据差距过大影响美观
  8. python离线_python 离线一个网站
  9. 码栈使用手册(二)---界面介绍
  10. 使用java做地图_在地图中使用Java
  11. 计算广告基本概念入门总结
  12. mysql二叉树_mysql如何创建二叉树
  13. 计算机CPU对外设的访问方法
  14. 开发中使用到的sql总结
  15. 结合 Whisper + Stable-diffusion 的语音生成图像任务
  16. oracle怎么退出,[转载]Oracle 11g SQL*Plus的几种启动、退出方法
  17. 【DS】三分钟带你学会时间(空间)复杂度
  18. htonl ntohl htons ntohs
  19. 【OR】YALMIP Sum of squares(SOS)规划
  20. “天龙八部基于颜色的简易动作式外挂”的增强

热门文章

  1. 在现有k8s集群中安装kubesphere时报错:metrics-server failed
  2. Deepin、Debian、Ubuntu恢复误删除的/var/lib/dpkg
  3. jenkins Publish over SSH 的配置与使用
  4. python3将列表当作队列使用
  5. Linux shell接收用户的输入
  6. 请你讲一下路由器和交换机的区别
  7. elasticsearch集群配置文件详述
  8. MySql取得日期(前一天、某一天)
  9. matlab利用t-SNE实现高维数据可视化(tsne函数用法实例)
  10. 微信支付分-支付失败原因总结