这里有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. github release 下载文件慢、或者失败的解决方法

    Free Download Manager 下载工具可以解决Github 下载缓慢或失败问题. 扫描下方二维码,关注公众号 回复github,即可获取下载链接.

  3. 返回值分类 (void、string、 modelAndView)

    /** * 返回值分类 : 字符串:方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址 void: 我们可以使用Servlet 原始 API 可以作为控制器中方法的参数: ModelA ...

  4. springAPI对事物支持之XML式配置

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerData ...

  5. Spring 整合 Junit

    一.导入jar包 二.使用@RunWith 注解替换原有运行器 [main()] /** * * @Company http://www.ithiema.com * @Version 1.0 */ @ ...

  6. windows oracle11gR2安装使用

    安装 plsql安装 https://blog.csdn.net/li66934791/article/details/83856225 配置tns # tnsnames.ora Network Co ...

  7. Navicat Premiun已经停止工作

    与网易有道词典冲突.退出词典即可.

  8. Java查找一个字符串在另一个字符串中出现的次数

    主要是练习String类中indexOf的用法 /** * 查找一个字符串在另一个字符串中出现的次数 */ public class MainTest { public static void mai ...

  9. 【BUG】Python3|安装python3-pip依赖缺失,might want to run ‘apt --fix-broken install‘ to correct these. unment

    今天装python,版本装错了. 然后删又删不掉,装pip又装不上,报错是这样的: 想装的时候: 7f2a0f717aa3:~/$ sudo apt-get install python3-pip p ...

  10. 【记录】IDA|Ollydbg|两种软件中查看指令在原二进制文件中的位置,及查看原二进制文件位置对应的反汇编指令的方式

    文章目录 在IDA中查看指令地址 在Ollydbg中查看指令地址 在Ollydbg中查看地址对应的指令 在IDA中查看指令地址 在Ollydbg中查看指令地址 ollydbg在对应指令处,右键-查看- ...