美文网首页
git回退版本

git回退版本

作者: 蜗牛Coming | 来源:发表于2019-11-18 14:17 被阅读0次

前话:在vscode中,安装git History插件,安装之后就可以用F1,选择Git:View History(git log),即可看到git的提交记录。
在每一行的最后面,就是commit_id

git reset

如果回退一个只是commit的,并没有push到远端分支的提交:
则直接执行

git reset --hard commit_id
//回退到commit_id的这次提交
//或者
git reset --hard HEAD^
//回退到上一次提交
//HEAD 等同于当前分支的最新的一次commit提交id
//HEAD^ 是上一次提交

注:
如果执行git reset --hard HEAD^ 显示More?
这是因为在windows的cmd控制台中换行默认符是^,所以More?的意思是问你下一行是否需要再输入,^符号就被当做换行符了。
解决方法:

//加引号
git reset --hard "HEAD^"
//加^
git reset --hard HEAD^^
//换成~
git reset --hard HEAD~
git reset --hard HEAD~1
//~后面的数字表示回退几次提交,默认是一次

另外:
git reset 还有以下用法:
git reset --soft
git reset --mixed
区别就是:
使用--soft就仅仅将头指针恢复,已经add的缓存以及工作空间的所有东西都不变。也就是执行了git reset --soft 就相当于只回退了git commit -m 这一步,改动的文件已经在暂存区了。
使用--mixed,就将头指针恢复,已经add的缓存也会丢失掉,工作空间的代码什么的是不变的。也就是执行了git reset --mixed 就相当于回退到了git add之前,改动的文件还在工作区,没有add到暂存区。
使用--hard,一切就全都恢复了,头指针恢复,add的缓存消失,工作空间的代码什么的也恢复到以前状态。也就是相当于你啥都没干过,工作区也没有了

另外,如果已经push到远端了,怎么回退?
依旧是先在本地回退,然后推到远端。
但是如果直接push的话,会push失败,因为本地的版本落后于远端的版本。
那就只有强退,加个--force参数

git push origin <branch> --force

git revert

回退版本还可以用git revert

如果回退的是一个只commit还没有push到远端的操作:
git revert commit_id 操作不会删除commit_id这次提交记录,并且还会新增一个新的revert的提交记录。

举个例子:
如果你依次有commit_id为a、b、c三次提交记录,并且a和b都已经提交到远端,c还没有push到远端,现在想撤销c的改动,
则执行git revert c,然后会生成一条d的commit_id,记录你revert了c。
然后你执行git status,会告诉你你有2次commit没有push。
然后你执行push到远端,就会记录下来你的c、d两次提交。

如果你revert的是已经push到远端的提交,会在工作区报冲突,需要你手动撤销你revert分支之后的改动,然后再次add,commit,push就可以了。

举个例子:
如果你依次有commit_id为a、b、c三次提交记录,并且都已经提交到远端,现在想撤销b之后的改动,
则执行git revert b,然后工作区会报冲突,报的是a之后的改动和当前的改动有冲突,可以选择采用传入的更改,然后接着add,commit,push就可以了。

注意:
git reset 后面跟的commit_id 是回滚这次提交的操作
git revert 后面跟的commit_id 是回滚这次提交

相关文章

  • Git常用命令

    版本回退git reset 回退add 操作Git 版本恢复还原命令 reset git reset –mixed...

  • iOS-git本地及远程分支回退

    1. git本地版本回退 2. git远程版本回退 下面的命令也可以实现远程版本回退 3.Git 如何删除远程服务...

  • Git

    回退远程版本 先回退本地版本 git reset --hard commitId或者 git reset HE...

  • 今日学习2019.10.16

    1.git版本回退git log:显示日志git reset --hard commitID:回退到某id版本2....

  • git 相关

    分支总结 版本回退 git reset –hard HEAD^ 回退到上个版本,git reset –hard...

  • Git版本回退以及前进

    git版本回退 然后使用命令git reset --hard commitId 如果回退之后想要恢复到现在版本,则...

  • git回滚和强制提交

    Git回滚代码到某个commit 回退命令:git reset --hard HEAD^ 回退到上个版本 git ...

  • 关于git commit 后想回退代码

    回退命令 git reset --hard HEAD^ 回退到上一个版本git reset ...

  • git 回退命令

    回退命令: git reset --hard HEAD^ 回退到上个版本 git reset --hard HEA...

  • git reset --hard xxx git reset

    git reset --hard xxxx 彻底回退版本,连本地文件都会被回退到上个版本的内容 git log 查...

网友评论

      本文标题:git回退版本

      本文链接:https://www.haomeiwen.com/subject/rxtbictx.html