目录
- 1、Git的三种后悔药
- 2、revert命令原理
- 3、revert命令的使用
- (1)移除某次提交的修改
- (2)revert命令说明
amend
、revert
、reset
。git commit --amend
:新的提交覆盖上一次提交的内容 。git revert
:提交一个新的commit
,来撤销之前的commit
。git reset
:直接回滚到指定的commit
。--soft
:只回退版本库,工作区和暂存区的内容不回退 。--mixed(默认)
:回退版本库和暂存区,工作区中的内容不回退 。--hard
:工作区,暂存区,版本库中的内容都回退到指定的提交 。(危险的)
提示:之前我们把2、revert命令原理在我们使用Git的操作中,遇到需要回滚代码的情况几乎是难以避免的,而git reset
命令说完了,git commit --amend
命令我们下一篇文章说 。这篇文章来说git revert
命令 。
git revert
命令是一个非常实用的功能,掌握好 git revert
命令的使用是很有必要的 。git revert
命令:是用于“反做”某一个版本,以达到撤销该版本的修改的目的 。比如,我们提交了三个版本,突然发现版本二不行(如:有
bug
),想要撤销版本二,但不想或不需要撤销版本三提交,就可以用 git revert
命令来反做版本二,同时生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西 。但注意:版本二的历史提交记录是不会删除的 。
如下图所示:
文章插图
提示:注意是3、revert命令的使用现有一个版本库,其中有4次提交,版本库的历史提交记录如下:revert命令
是撤回某个改动,不是reset
命令撤回到某个改动 。另外,这条命令不会删除任何commit
记录,而是会新增一条revert
操作的commit
记录(会弹出commit message
的编辑窗口) 。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/revert_test (master)$ git log --onelinec04b29c (HEAD -> master) 第4次提交,新增内容:revert test v4fd819dc 第3次提交,新增内容:revert test v3c71ae3c 第2次提交,新增内容:revert test v2557f7c3 第1次提交,新增readme.txt文件
我们发现第三次提交和第四次提交有错误,需要撤销 。如下图:
文章插图
(1)移除某次提交的修改
commit-1
和 commit-2
是正常提交,而 commit-3
和 commit-4
是错误提交 。现在,我们想把 commit-3
和 commit-4
撤销掉 。而此时,HEAD 指针指向 commit-4
提交(c04b29c
) 。我们只需将 HEAD 指针移动到commit-2
提交(c71ae3c
),就可以达到目的 。我们一定会想到之前学过的
git reset
命令 。执行命令git reset --hard c71ae3c
,就可以退回到 commit-2
提交 。采用这种方式回退代码的弊端显而易见,那就是会使 HEAD 指针往回移动,从而会失去之后的提交信息 。将来如果突然发现,
commit-3
和 commit-4
是多么绝妙的想法,可它们已经早就消失在历史的长河里了(但是通过reflog
也能找回来) 。而且,有些公司明令禁止使用
经验总结扩展阅读
- 2023年10月14日是回娘家吉日吗 2023年10月14日回娘家吉日一览表
- 2023年10月14日打猎行吗 2023年10月14日打猎吉日一览表
- 2023年10月14日去医院吉日一览表 2023年农历八月三十宜去医院吗
- 微醺鸡尾酒多少度
- 2023年10月14日领养孩子吉日一览表 2023年10月14日是领养孩子的黄道吉日吗
- 一次性口罩气味大是甲醛吗
- 一斤苦瓜泡多少酒
- 2023年10月14日认干儿子吉日一览表 2023年10月14日认干儿子好不好
- 蝙蝠飞进家里需要消毒吗
- 为什么拖鞋穿久了会有一股屎臭味啊?