主要内容:
1 )由于HEAD指向的版本是当前版本,因此Git允许您在版本历史中来回切换,并使用命令git reset --hard commit_id。
2 )可以在git log中查看提交历史记录,可以查询返回版本的ID。
3 )版本回滚后,必须在再次回滚之前返回。 可以在git reflog中查看命令历史记录,也可以查看每个命令的记录。 那里有必要的版本ID。
工作中,如果你想把辛苦写的一半代码搞乱,回到这次修改之前,以免所有的工作都失败,该怎么办
例如,我们已经向Git仓库提交了一个名为text的项目,并且已经提交了很多次
首次提交: add index.html (首页布局完成) ) ) )。
第二次提交: add 1.txt
第三次提交: change 1.txt
此时,修改text1.txt后,我认为以前的版本更合适。 必须恢复到以前的版本
只要使用git reset就可以了
场景1 :我清楚地知道我们会回到第几个版本
打开相应的Git命令行。 在Git中,当前版本用头表示。 因此,要返回到上一个版本,只需使用命令。 * *获取重置--hard head ^ * *
对于早期版本,命令: git reset --hard HEAD^^
如果需要提前20个版本,可以使用命令: git reset --hard HEAD~20
情景二:我不记得是第几个版本
在某些情况下,提交的东西很多,或者过一段时间再来继续这个项目,你可能不记得是第几个版本了。 在这种情况下,可以使用命令: git log查看每次更改的记录
$ git log
commit 580361 e 6b F5 ce 744 c0ca 4a 2295 e 97 BC 42 F5 a6 c 36 (头主) )。
author : leyalemogu 163 @ yeah.net
date : sat dec 11133604433600820180800
chgange 1.txt
commit5a73 f 7b 0689653 dafd df5 a 37c 1b 3d de 5b 19f 144 e
author : leyalemogu 163 @ yeah.net
date : sat dec 1113360433602820180800
add 1.txt
commit 52602 b0b04 b57 b 33310 fa 256707518 b 126 d 2648 c
author : leyalemogu 163 @ yeah.net
date : sat dec 11133604233601220180800
add index.html
从上面可以看到相关的提交日志。 一共是三次修改。 在Data中,可以看到各提交的具体时间。 Data后面是我们每次提交时填写的提交评论。 这样就可以知道自己需要回滚到哪个版本。 另外,值得注意的是commit后面的字符串。 这是我们的提交ID,因人而异。 此时,回滚可以直接使用
ID回退命令: $ git reset-- hard 52602 b0b04 b57 b 33310 fa 256707518 b 126 d 2648 c
运行后,返回headisnowat 52602 b0addindex.html
这个时候,我们回到了最初的提交。 也就是说,text只有最初提交的名为index.html的文件
场景3 :返回文件后,必须返回最近更新的版本
原始命令行窗口尚未关闭。 请直接向上查看返回版本的ID,然后运行命令。
$ git reset-- hard 580361 e 6b F5 ce 744 c0ca 4a 2295 e 97 BC 42 F5 a6 c 36
已关闭:
命令: $ git reflog允许您查看每个命令的记录
确认后,使用git reset返回适当的版本吧。 HEAD前面的字符串是省略的ID
命令: $ git reset --hard 580361e