Git,Sourcetree某个文件的版本既有超前同时又有落后该怎么处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git,Sourcetree某个文件的版本既有超前同时又有落后该怎么处理相关的知识,希望对你有一定的参考价值。
参考技术A 重新安装SourceTree时,换一个文件夹,然后不会出现选择Git,也不会出现‘C:\work_space\face_liveness_app’不是一个有效的Git仓库工作副本。本回答被提问者采纳SourceTree超前一个版本,落后N个版本
SourceTree超前一个版本,落后N个版本
在使用SourceTree的时候经常会遇见超前一个版本,落后N个版本的情况,遇见这种情况应该怎么办呢?
首先打开终端,最好是从SourceTree里面打开,菜单栏有个终端按钮。
然后输入:
$ git reset --hard HEAD^
这句话的意思是将自己最近的一次提交撤销,回到push之前的状态。但是所有commit的内容就都消失了。非常不建议用这个参数,会牺牲太多的代码。。
如果不想让commit消失,可以改一下参数。用这个参数可以保证你提交的代码原封不动的保存下来。前提是你本地的工作台是干净的。。把所有代码都暂存。
$ git reset --soft HEAD^
执行这句话之后重新拉取一遍代码就可以了,push的都会撤销回来。
如果想一次回退多个push,可以这样:(例子是撤销最近三次的提交)
$ git reset --soft HEAD~3
如果想回退到某个指定版本,在终端中输入:
$ git reset --soft 1234567
1234567是要回退到的版本号,根据具体情况而定,这里只是举例子。
版本号可以不写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
最后总结一下:
HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。穿梭前,用
git log
可以查看提交历史,以便确定要回退到哪个版本。要重返未来,用
git reflog
查看命令历史,以便确定要回到未来的哪个版本。
以上是关于Git,Sourcetree某个文件的版本既有超前同时又有落后该怎么处理的主要内容,如果未能解决你的问题,请参考以下文章
git下查看某个文件的提交记录,sourcetree不给力!