项目中,我们会遇到 提交的项目代码有问题,需要执行撤回命令,但是发现撤回之后还是会运行失败。 下边是一个好方法,亲测比 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) 这种方式可以只回退某一个版本,并且回退之后,还会保留之前版本的记录。推荐
|