目录
- 4、一次移除某几次提交
- (1)
git revert
移除某几次提交的修改 - (2)
git revert
移除某几次连续的提交的修改
- (1)
- 5、revert命令常用参数
- 6、
git revert
和git reset
命令的区别
提示:接上一篇文章 。4、一次移除某几次提交上一篇文章的演示中,只有两个提交需要
revert
,我们可以一个个回退 。但如果有几十个呢?一个个回退肯定效率太低而且容易出错 。(接上面示例)
我们可以使用以下方法进行批量回退:
(1)
git revert
移除某几次提交的修改命令:git revert <commit6> <commit5> <commit4> …
注意:提交的顺序是从最近的提交开始往前写 。示例:
# 1.查看版本库历史提交记录L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/revert_test (master)$ git log --oneline30f7626 (HEAD -> master) Revert "第6次提交,revert 撤销第3次提交"d0c8e48 Revert "第5次提交,revert 撤销第4次提交"c04b29c 第4次提交 , 新增内容:revert test v4fd819dc 第3次提交,新增内容:revert test v3c71ae3c 第2次提交,新增内容:revert test v2557f7c3 第1次提交,新增readme.txt文件# 2.把第5、6次提交移除# 先写提交5ID , 在写提交6IDL@DESKTOP-T2AI2SU MINGW64 /j/git-repository/revert_test (master)$ git revert d0c8e48 30f7626Auto-merging readme.txtCONFLICT (content): Merge conflict in readme.txterror: could not revert d0c8e48... Revert "第5次提交,revert 撤销第4次提交"hint: after resolving the conflicts, mark the corrected pathshint: with 'git add <paths>' or 'git rm <paths>'hint: and commit the result with 'git commit'
说明:Auto-merging readme.txt
:自动合并readme.txt
文件出现问题 。CONFLICT (content): Merge conflict in readme.txt
:冲突(内容):在readme.txt中合并冲突 。error: could not revert d0c8e48... Revert "第5次提交 , revert 撤销第4次提交"
:无法还原d0c8e48提交 。hint: after resolving the conflicts, mark the corrected paths
:解决冲突后,把冲突文件提交到暂存区 。hint: with 'git add <paths>' or 'git rm <paths>'
:可使用“ git add <路径>”或“ git rm <路径>”方法,添加冲突文件到暂存区,或者删除文件 。hint: and commit the result with 'git commit'
:提示:并使用'git commit'提交结果 。
commit-6
,在写commit-5
。# 1.撤销第5、6次提交L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/revert_test (master)$ git revert 30f7626 d0c8e48[master 31341a4] Revert "Revert "第7次提交,revert 撤销第5、6次提交"" 1 file changed, 1 insertion(+)[master 509c208] Revert "Revert "第8次提交 , revert 撤销第5、6次提交"" 1 file changed, 1 insertion(+)# 2.查看版本库历史提交记录L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/revert_test (master)$ git log --oneline509c208 (HEAD -> master) Revert "Revert "第8次提交 , revert 撤销第5、6次提交""31341a4 Revert "Revert "第7次提交,revert 撤销第5、6次提交""30f7626 Revert "第6次提交,revert 撤销第3次提交"d0c8e48 Revert "第5次提交,revert 撤销第4次提交"c04b29c 第4次提交,新增内容:revert test v4fd819dc 第3次提交,新增内容:revert test v3c71ae3c 第2次提交,新增内容:revert test v2557f7c3 第1次提交 , 新增readme.txt文件# 3.查看readme.txt文件内容 , 又回到V4版本了L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/revert_test (master)$ cat readme.txtrevert test v1revert test v2revert test v3revert test v4
我们可以看到,每撤销一个commit提交,都会生成一个新的提交 。上面撤销了两个commit,就让你编写两次提交说明信息 。这时,错误的提交
commit-5
和 commit-6
依然保留 , 将来进行甩锅的时候也有依可循 。而且 , 这样操作的话 HEAD 指针是往后移动的,可以直接使用 git push
命令推送到远程仓库里,而这种做法 , 正是企业所鼓励的 。(2)
git revert
移除某几次连续的提交的修改【二 『现学现忘』Git后悔药 — 33、revert撤销】命令:git revert <commit新>...<commit旧>
(这里就不做演示了 , 同上)
注意:
- 含头不含尾,也就是撤销的提交,包含
<commit新>
,不包含<commit旧>
。 - 提交的顺序也是,最新的commit开头 , 然后往前到比较远的commit提交 。
推荐阅读
- 怎么在淘宝投诉卖家(淘宝小二最怕投诉电话)
- 二 kafka详解--kafka为什么快
- 一 『现学现忘』Git后悔药 — 32、revert撤销
- 二 路径分析—PostgreSQL+GeoServer+Openlayers
- 电锯人第二集在哪可以看
- 二 SpringBoot - 核心配置文件
- .NET 采用 SkiaSharp 生成二维码和图形验证码及图片进行指定区域截取方法实现
- 【算法训练营day1】LeetCode704. 二分查找 LeetCode27. 移除元素
- AVX图像算法优化系列二: 使用AVX2指令集加速查表算法。
- 军棋的暗棋怎么玩要详细(二人军棋暗棋翻棋方法)