【学习笔记】Git 还原: reset、checkout

最近正在学习git,想要透过把学到的东西写下来,来记录一下自己学到的东西,也方便以后回顾这些知识。
刚开始写这种类似技术性的文章,可能有很多地方写得不好,还请高手们不吝指教。


在修改档案的时候可能常常会有已经暂存、提交的档案,因为种种缘故,又要再重新拿回来修,又或者是推错档案等等,这时候就很需要git的回复功能。
只要档案有加入过commit,那档案都能被还原。

从暂存(stage)中取消

要取消暂存,需要使用git reset的指令。
比如说,有一个A.html被我git add到stage了,我想要将他退回,那我需要在终端机输入git reset -- <档案名称>,这里的状况档案名称就是A.html,使用这个指令后,A.html就会从stage中被退回,回到「已修改,但尚未被git追蹤」的状态,可以用git status查看状态。
如果要一次将所有stage的档案退回,可以用git reset .

捨弃变更

如果档案已经修改,但是后来发现还是以前好,想要捨弃变更时,可以使用git checkout -- <档案名称>。使用这个指令就像游戏中读取上一个存档点,会将进度回复到上次储存的地方一样,档案会回复成上次commit的状态。

取消commit

如果已经将档案commit上去,但是后来想想还是回复上一个版本好了,那就可以使用git reset HEAD^git reset HEAD~1,两个功能是一样的,都代表要将commit的版本回复到前一个版本。使用后,原本commit上去的版本会退回到工作资料夹待处理。此时,用git log看提交纪录,也会发现这次的提交纪录不见了。

如果连退回的档案都不需要的话,那可以使用git reset HEAD^ --hard--hard代表在还原过程中,要把档案捨弃。

如果要回复到上上个、上上上个...好几个版本以前的话,可以在HEAD后面处理。例如说,要到上上个版本,输入git reset HEAD^^^^就是两个版本以前的意思。或着也可以输入git reset HEAD~2git reset HEAD^2,波浪符、^后面的数字是要回复到几个版本以前的意思。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章