git版本的回退

使用ide的伙伴,基本都可以通过插件来自动的来进行版本的回退,十分的方便,这里我主要记录下使用命令行时候的功能,因为自己的电脑比较垃圾,项目内的文件又十分的多,用命令行对于我来说,会十分的顺畅,不像使用插件那样十分的卡

git reset

这里我们准备一个文件,我们想要将其回退到最初的版本

执行完git reset commit-id以后,我们查看下status

历史的那个版本是我们需要回退的,所以我们执行下git restore <file>就可以了

git revert

revert众所周知,是创建一个新的commit,不会影响历史

我们有如下的提交历史

现在我想回退到 cda3 这个历史记录,执行命令git revert cda3xxx ,界面提示我们,有冲突,我们打开冲突看下

?我只是想要去掉211111111这行,怎么连4都是冲突了的呢? 原来4是我们在cda3提交的内容,初始的时候,这个文件是没有 4 这一行的,也就是说,它直接回到了这个提交没有commit的状态,你的4作为一个新的改动被保留了

好了,现在我们修改一下,然后提交,就可以实现回退版本了

git revert 对单个文件

git revert经过测试发现,是针对整个repository的,无法针对单个文件来实现回退,如果想要对单个文件实现类似git revert的功能,可以使用命令git checkout [commit id] -- [/path/file] 来进行,而我经过测试发现,这个方法目前只能回退一个版本,如果超过1个,似乎还是不行

patch 补丁

还有一种实现类似revert的方式是使用补丁,首先我们通过git diff的方式来制作补丁,git diff fcecfc 8eeeb b > /tmp/b.diff 得到的diff是第二个commit 对比第一个 commit的差异,然后我们使用这个补丁git apply /tmp/b.diff, 文件状态就会是已修改,我们查看下文件内容是否为我们期望的,确认好了以后,就可以commit保存了

posted @ 2022-11-21 20:21  myCodeLikeShit  阅读(126)  评论(0编辑  收藏  举报