git 撤回 (git版本回退处理)

项目中,我们会遇到 提交的项目代码有问题,需要执行撤回命令,但是发现撤回之后还是会运行失败。
下边是一个好方法,亲测比 git reset --hard 版本号 有效。
下面我们详细解说一下。

一: 已提交,没有push 回滚

当我们本地已经 执行了git commit -m “说明内容”,但还没有 进行 git push,如何回滚呢
操作如下:

1 执行 git status 命令 查看本地的commit 提交记录。

在这里插入图片描述
2 在执行 git log 命令 查看commit 提交的版本号

在这里插入图片描述
然后输入 q 就会退出。

3 (3种方法)
再去执行 git reset --soft ;会撤销commit,但不会撤销add;
或者执行 git reset --mixed ;会撤销commit,也撤销add;
再或者执行 git reset --soft 版本号 ;会撤回你提交的commit。

你看你需要哪一种

4 验证一下 再去执行 git status 看看也没有commit 了
在这里插入图片描述
就证明可以了。

二:已提交,并且push,回滚

看第二种方法吧,建议使用

方法一 :git reset 方法
git reset --hard 撤销并舍弃指定的版本号之后的提交记录。使用需要谨慎。
注意:是版本号之后的所有提交记录,谨慎用!

示例: git reset --hard fedadc2efcf639da22631c60ae706mmmmm
在这里插入图片描述
然后需要push到远程分支,但是直接git push, 是会报错的,因为本地版本落后于远程,需要强制push
在这里插入图片描述
强制push 执行 git push -f 命令,然后查看本地和远程分支,可以看到我们的commit提交的那个版本没有了,版本回退到了提交之前的版本
在这里插入图片描述
这种强制提交,如果使用的是gitlab, 权限不是maintainer, 提交也会失败,需要找管理员提交。
注意:这种方式会把提交的代码直接舍弃,非常不建议使用!

第二种建议使用 git revert
(这种方法非常适用于提交后报错一直解决不了的,前提是提交前项目可以正常运行)
git revert 撤销。但是保留了提交记录。并且他是移除指定的提交。
获取需要回退的版本号,注意这里和上面的不一样,上面的是回退到之前的某一个版本,现在是撤销当前的版本。
1 执行 git log 命令 查看已经提交过的commit信息版本号
2 git revert 版本号,(例子 git revert 1212121212)
3 输入键盘 i 键,进入编辑状态,改一下提交的名称,
4 键盘Esc键,再去输入冒号 ,在输入 wq, 执行一下回车enter键,就ok了
5 然后再git push到远程分支,即可。

(当然了你在第3个步骤的时候也可以不编辑,直接操作下一步就行,
i ——> ESC ——> : ——> wq ——> enter ——>push)
这种方式可以只回退某一个版本,并且回退之后,还会保留之前版本的记录。推荐

猜你喜欢

转载自blog.csdn.net/lzfengquan/article/details/125690762