git冲突的解决与版本回退遇到的问题
这里有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冲突的解决与版本回退遇到的问题的更多相关文章
- Git冲突与解决方法【转】
本文转载自:https://www.cnblogs.com/gavincoder/p/9071959.html Git冲突与解决方法 1.git冲突的场景 情景一:多个分支代码合并到一个分支时: 情景 ...
- git分支与版本管理、版本回退、冲突解决记录
一.基础使用 1.初始化本地仓库 git init 2.关联远程仓库 git remote add origin git@github.com:用户名/仓库名.git 3.添加远程仓库文件到本地 gi ...
- git 教程(4)--版本回退
现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. ...
- Git冲突与解决方法
1.git冲突的场景 情景一:多个分支代码合并到一个分支时: 情景二:多个分支向同一个远端分支推送代码时: 实际上,push操作即是将本地代码merge到远端库分支上. 关于push和pull其实就分 ...
- Git冲突和解决冲突
1.产生冲突原因 产生:多个开发者同时使用或者操作git中的同一个文件,最后在依次提交和push的时候,第一个操作的是可以正常提交的,而之后的开发者想要执行pull(拉)和pull(push)操作的时 ...
- GIt学习第二天之版本回退、工作区和暂存区
搬运自 ‘廖雪峰的官方网站’ 地址:https://www.liaoxuefeng.com/ 1.版本回退 在Git中,我们用git log命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花 ...
- git冲突时解决方法
在多人协作中,使用git时有冲突是必然的,当git pull 下来代码的时候会出现 <<<<<<< HEAD这些东西,我也没有详细了解过这些,只是知道删除一 ...
- git学习02 - log查看&版本回退
1.查看更新记录 git log / git log --pretty=oneline D:\learn\git_test>git log commit a915e7b12076673d778 ...
- Git入门 时光穿梭鸡 版本回退 工作区 暂存区
分布式集中式 CVS及SVN都是集中式的版本控制系统 , 而Git是分布式版本控制系统 集中式版本控制系统,版本库是集中存放在中央服务器的, 而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得 ...
- Git学习总结二(版本回退)
修改修改仓库中readme.txt文件,然后用git status命令看看结果: $ git status On branch master Changes not staged for commit ...
随机推荐
- vivo Trace 监控追求极致的建设历程
作者:vivo 互联网服务器团队- Zhang Yi 当前vivo的应用监控产品Vtrace经常遇到用户反馈某个Trace链路信息没法给他们提供到实质的帮肋,对此团队一直在持续完善JavaAgent的 ...
- 返回值分类 (void、string、 modelAndView)
/** * 返回值分类 : 字符串:方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址 void: 我们可以使用Servlet 原始 API 可以作为控制器中方法的参数: ModelA ...
- 2025年4月TIOBE指数
4 月头条:编程语言 Kotlin.Ruby 和 Swift 直到最近在 TIOBE 指数排名中都一直稳居前 20 的稳定位置.但如今它们似乎失去了发展动力,且很可能会逐渐过时.Kotlin 和 Sw ...
- MCP Server Java 开发框架的体验比较(spring ai mcp 和 solon ai mcp)
目前已知的两个 mcp-server java 应用开发框架(ID类的,封装后体验都比较简洁): spring-ai-mcp,支持 java17 或以上 solon-ai-mcp,支持 java8 或 ...
- CTF实验吧加了料的报错注入
实验吧地址 http://ctf5.shiyanbar.com/web/baocuo/index.php F12审查元素发现源码中的提示是这样一整句的查询 基本确定此题为一个SQL注入 /# = un ...
- 告别源码阅读困境!五款 AI 工具强势救场
一.简介 阅读项目源码困难重重,复杂的代码结构.繁多的依赖关系,常常让开发者们焦头烂额.别慌!这里有五款AI工具,堪称源码阅读神器,能帮你轻松搞定这些难题,快速理解项目核心,提升开发效率. 文章首发公 ...
- Python 潮流周刊#102:微软裁员 Faster CPython 团队(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- 网络编程:select
原理:参考:https://my.oschina.net/fileoptions/blog/911091 select中内核函数有哪些 源码实现: #undef __NFDBITS #define _ ...
- ASCII字符与非ASCII字符的正则
private static System.Text.RegularExpressions.Regex regex = new Regex("([\u0000-\uffff])") ...
- 远程服务器(腾讯云轻量服务器)上安装SQL Server以及SQL Server Management Studio,以及EFCore对其的连接
SQL Server的安装 下载地址:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 安装教程参考:https://bl ...