◉◡◉ 您好,欢迎到访伊成个人站!

GIT版本回退

写在前面

在项目开发的过程中,有时候提交了不应该提交的内容或提交错分支了,需要撤回对应的提交内容。也就是需要进行版本回退操作
那具体怎么操作呢?

再说具体怎么操作之前,我们需要明白回退有几种情况。

第一种情况:已经commit,但未push到远程仓库。

第二种情况:已经commit,并且ush到远程仓库。

针对以上两种情况如何回退?

已经commit,但未push到远程仓库,怎么回退

方法1:git reset –soft

在README.md文件中模拟我们编写的代码内容,执行提交命令并提交到了本地仓库。

此时回滚到上一个版本,可以通过执行以下命令可以回退到上一个commit

1
git reset --soft HEAD^

执行完这个命令之后,再查看是否回退到了上一个commit

1
2
PS D:\giteeSource\tuku> git reset --soft HEAD^
PS D:\giteeSource\tuku>

Tips: HEAD^的意思是上一个版本,也可以写成HEAD~1 ,如果你进行了2次commit,想都撤回,可以使用HEAD~2,这个命令仅仅是撤回commit操作,写的代码仍然保留。

方法2:git reset –mixed

继续在README.md文件中填写一些内容模拟编写的代码,并且提交到本地仓库。

执行以下命令进行版本回退

1
2
3
4
5
PS D:\giteeSource\tuku> git reset --mixed HEAD^
Unstaged changes after reset:
M README.md
M pom.xml
PS D:\giteeSource\tuku>

经过查看确实回退到了上一个提交的commit。

小小的总结

以上的2个方法都可以回退到上一个版本,但是需要注意的是,仅仅是回退了上一个版本,你提交的内容仍存在的。

已经commit,并且push到远程仓库,怎么回退

老样子在README.md文件中填写一些内容模拟编写的代码,并且提交到本地仓库。

方法1:git reset –hard 版本号

版本号可以通过 git log 查找

1
2
3
PS D:\giteeSource\tuku>  git reset --hard  f620f481a3ffc32d3d7587406eacb538dd2b5455
HEAD is now at f620f48 up
PS D:\giteeSource\tuku>

通过以上命令,确实看到版本回退到指定的版本上了。

方法2:git revert 版本号

事先这里已经模拟好了3次提交到远程仓库的操作了,假如现在是提交错了,需要回退到 上一个版本号,

对应的版本号 还是可以通过 git log 查找。

然后执行以下命令回退到上一个版本

1
2
3
4
5
6
7
8
PS D:\giteeSource\tuku> git revert 767ecc1766dddab59504a1bb203d7ce003fff7e4
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
error: could not revert 767ecc1... 模拟提交 2
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
PS D:\giteeSource\tuku>

Tips: 这种方式不会把版本往前回退,而是生成一个新的版本。


The end.

支付宝打赏 微信打赏