这里有2个分支,master中的test.txt文件内容是master init,branch01中的test.txt文件内容是branch01 init

  

1、合并分支遇到冲突

在master上merge branch01,由于master的第一行是master init,branch01的第一行是branch01 init,所以合并时就出现冲突了

解决方法:修改冲突的test.txt文件,然后git add, git commit, git push

查看提交后的结果,会看到把branch01所有提交的版本都合并到了master上了,解决冲突后的test.txt文件也是对的

2、版本回退(git reset)遇到的问题

输入git log,如下图所示,head表示最新版本

现在把分支回退到合并前,也就是回退到master init提交的版本,如下图所示,输入git reset --hard [commit-id],可以看到当前版本已经回退到了master init提交到那个版本,之前合并的版本已经没有了

现在把当前本地分支同步到远程,如下图所示,使用git push出现推送失败的情况,因为本地分支的版本低于远程分支,当然会这样,我们本来就行回退到之前的分支。注意这里不要使用git pull来更新分支,更新后又是回退前的版本了。使用git push -f强制推送过去,就可以了。强制推送的情况在这里可以使用,一般情况下不推荐使用

我们再次查看远程分支,如下图所示,推送版本只有master init,之前合并后的版本没有了

3、版本回退后,再重新合并

如下图所示,使用git merge,若出现冲突就解决,然后git add, git commit, git push就可以了

可以看到,合并后的分支已经提交上去了

4、版本重做(git revert)

与git reset的区别是:git reset会回退到指定的某一版本,这个版本之后的提交都没有了;而git revert会生成一个新的版本,只不过这个版本会撤销指定的某一版本

如下图所示,这里有3次提交,每次提交增加一行代码

现在重做update 03这个版本,也就是撤销update 03这个版本的提交,并重新生成一个版本。如下图所示,输入git revert -n [commit-id]

结果如下所示,新增了一个版本,这个版本撤销了udate 03的提交

5、版本重做后再次合并

若重做了合并某分支的提交,重新生成了一个新版本,这个版本的代码不含这个分支提交的内容。当需要再次合并这个分支时,会出现已经合并的提示,原因是之前已经合并过了,再次合并肯定会给这个提示,合并不成功。但最新代码确实是没有这个分支的内容,因为已经重做了

解决方法:先让这个分支撤销(git reset head^)上次的提交,如果合并前有多个提交就都撤销。然后git add, git commit, git push [-f]重新提交,然后切换到master,重新merge,push就行了

附加rebase操作:

git log
git rebase -i xxxx // 当前分支多版本合并到一起
git push -f
git rebase master // 当前版本附加到master版本之后 git reset --hard // 撤销当前合并

git冲突的解决与版本回退遇到的问题的更多相关文章

  1. Git冲突与解决方法【转】

    本文转载自:https://www.cnblogs.com/gavincoder/p/9071959.html Git冲突与解决方法 1.git冲突的场景 情景一:多个分支代码合并到一个分支时: 情景 ...

  2. git分支与版本管理、版本回退、冲突解决记录

    一.基础使用 1.初始化本地仓库 git init 2.关联远程仓库 git remote add origin git@github.com:用户名/仓库名.git 3.添加远程仓库文件到本地 gi ...

  3. git 教程(4)--版本回退

    现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. ...

  4. Git冲突与解决方法

    1.git冲突的场景 情景一:多个分支代码合并到一个分支时: 情景二:多个分支向同一个远端分支推送代码时: 实际上,push操作即是将本地代码merge到远端库分支上. 关于push和pull其实就分 ...

  5. Git冲突和解决冲突

    1.产生冲突原因 产生:多个开发者同时使用或者操作git中的同一个文件,最后在依次提交和push的时候,第一个操作的是可以正常提交的,而之后的开发者想要执行pull(拉)和pull(push)操作的时 ...

  6. GIt学习第二天之版本回退、工作区和暂存区

    搬运自 ‘廖雪峰的官方网站’ 地址:https://www.liaoxuefeng.com/ 1.版本回退 在Git中,我们用git log命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花 ...

  7. git冲突时解决方法

    在多人协作中,使用git时有冲突是必然的,当git pull 下来代码的时候会出现  <<<<<<< HEAD这些东西,我也没有详细了解过这些,只是知道删除一 ...

  8. git学习02 - log查看&版本回退

    1.查看更新记录 git log /  git log --pretty=oneline D:\learn\git_test>git log commit a915e7b12076673d778 ...

  9. Git入门 时光穿梭鸡 版本回退 工作区 暂存区

    分布式集中式 CVS及SVN都是集中式的版本控制系统 , 而Git是分布式版本控制系统 集中式版本控制系统,版本库是集中存放在中央服务器的, 而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得 ...

  10. Git学习总结二(版本回退)

    修改修改仓库中readme.txt文件,然后用git status命令看看结果: $ git status On branch master Changes not staged for commit ...

随机推荐

  1. 线性判别分析(LDA):降维与分类的完美结合

    在机器学习领域,线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的算法,它在降维和分类任务中都表现出色. LDA通过寻找特征空间中能够最大化类间方差和最小 ...

  2. C#/.NET/.NET Core优秀项目和框架2025年3月简报

    前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的详细介绍.功能特点.使用方式以及部分功能 ...

  3. 持续集成cicd和devops

    什么是 cicd,devops DevOps是一种思想,是一种文化,主要强调软件开发测试运维的一体化,目标是减少各个部门之间的沟通成本从而实现软件的快速高质量的发布.cicd是指持续集成发布部署,是一 ...

  4. eolink对数据进行四舍五入处理

    下图"BalanceAmount"返回值显示小数点2位以后的值,这样就与预计匹配值不等导致脚本错误 对这个值进行四舍五入处理,比如返回值变成整数 var num = eo.env. ...

  5. 如何在 Java 中进行内存泄漏分析?

    如何在 Java 中进行内存泄漏分析? 内存泄漏是指程序中无法访问的对象仍然被占用内存,导致内存无法回收,最终导致内存不足.程序崩溃等问题.Java 中的内存泄漏通常与垃圾回收机制的工作方式相关,虽然 ...

  6. 【问题解决】centos7已经不维护了,如何继续使用yum源?

    背景 CentOS 7 已于2024年6月30日停止维护,在停止维护后我们之前配置的国内镜像源大多都是空目录了,即在线国内镜像源不可用,就像下边这样提示: [root@bogon yum.repos. ...

  7. 安卓智能手机芯片上audio的bringup

    基于安卓平台的智能手机芯片回来后要做bringup.首先是负责平台的把安卓OS起来,然后就轮到各功能模块做bringup了,Audio是其中主要功能模块之一.Audio由于场景多和牵涉到的core多, ...

  8. 备份一个 VirtualizingWrapPanel ,支持虚拟化

    1 using System; 2 using System.Collections.Generic; 3 using System.Diagnostics; 4 using System.Linq; ...

  9. GitLab——重置(reset)和还原(revert)

    Git 命令 reset 和 revert 的区别 - 知乎 (zhihu.com) 总结: git reset --hard 9201d9b19dbf5b4ceaf90f92fd4e4019b685 ...

  10. 集成RabbitMQ队列与EventBus总线

    参照: Blog.Core [项目更新] 集成RabbitMQ队列与EventBus总线_dotNET跨平台的博客-CSDN博客