https://blog.youkuaiyun.com/lucky_ly/article/details/101394171
<!--一个博主专栏付费入口结束-->
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-d284373521.css">
<div id="content_views" class="markdown_views prism-atom-one-dark">
<!-- flowchart 箭头图标 勿删 -->
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
</svg>
<h2><a name="t0"></a><a id="1_0"></a>1.前言</h2>
在日常的开发中,一般一个需求一个分支,但是有时候部分需求可能可能延期,而我们在分支中已经修改了部分相关代码。这样在后续合代码就会出现问题,1.手动改回代码,或者使用git reset回退单个文件,以上操作都不够保险,有可能会有遗漏,或错误,有出现风险的可能。2.使用git revert命令,该命令就是为撤销某个提交记录而诞生的。回退提交记录后,会产生一个新的提交记录,这点和reset不同。
2.git revert使用
2.1git revert 撤销中间的提交记录
git revert分2中情况,1.回退单个分支上的某条commit,
这个比较简单
git revert 撤销的commitId
- 1
2.1git revert 撤销合并的提交记录
例如想撤销ly_dev分支合并进master的操作。
‘1.先进行第一步撤销操作。
-m 表示的是撤销的父commitID,从左往右第一个
git revert 2757470697870fde2af1d3f873ca8642f1ba7e54 -m 1
- 1
2.有冲突,解决完冲突,重新add,commit
3.再进行第二步撤销操作。
git revert 2757470697870fde2af1d3f873ca8642f1ba7e54 -m 2
- 1
3.总结
git revert是撤销某个提交的内容,但是记录还是会存在,比如如果git revert 撤销的是合并的修改,那么将这些已经合并过的记录将无法再次被合并,因为git 无法感知到2个分支之间commit的差异,这也是和reset的区别之一。所以关于revert和reset还是要深入了解其使用原理,此类操作都要进行多方面考虑。通常在自己分支上尚未被合并到主分支时,可以撤销某个提交,如果分支,已经被合并了,还是慎用,在后续的合并过程中容易引起冲突或者别的意想不到的问题。
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-526ced5128.css" rel="stylesheet">
</div>