git 超前一个版本 落后一个版本的解决方案

在使用SourceTree的时候常常会碰见超前一个版本,落后N个版本的状况,碰见这种状况应该怎么办呢?git

 

首先打开终端,最好是从SourceTree里面打开,菜单栏有个终端按钮。code

而后输入:it

 

$ git reset --hard HEAD^

这句话的意思是将本身最近的一次提交撤销,回到push以前的状态。可是全部commit的内容就都消失了。很是不建议用这个参数,会牺牲太多的代码。。终端

若是不想让commit消失,能够改一下参数。用这个参数能够保证你提交的代码原封不动的保存下来。前提是你本地的工做台是干净的。若是不是请把全部代码都暂存。总结

 

$ git reset --soft HEAD^

 

执行这句话以后从新拉取一遍代码就能够了,push的都会撤销回来。co

 

若是想一次回退多个push,能够这样:(例子是撤销最近三次的提交)工作

 

$ git reset --soft HEAD~3

 

若是想回退到某个指定版本,在终端中输入:push

 

$ git reset --soft 1234567

1234567是要回退到的版本号,根据具体状况而定,这里只是举例子。版本

 

版本号能够不写全,前几位就能够了,Git会自动去找。固然也不能只写前一两位,由于Git可能会找到多个版本号,就没法肯定是哪个了。参数

 

最后总结一下:

 

  • HEAD指向的版本就是当前版本,所以,Git容许咱们在版本的历史之间穿梭,使用命令git reset --hard commit_id

  • 穿梭前,用git log能够查看提交历史,以便肯定要回退到哪一个版本。

  • 要重返将来,用git reflog查看命令历史,以便肯定要回到将来的哪一个版本。

相关文章
相关标签/搜索