6.版本回退

版本回退
每当文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为 commit 。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个 commit 恢复,然后继续工作,而不是把几个月的工作成果全部丢失。

如果进行版本回退操作的话,Git必须知道当前版本是哪个版本,在Git中,用 HEAD 表示当前版本,也就是最新的提交,上一个版本就是 HEAD^ ,上上一个版本就是 HEAD^^ ,当然往上100个版本写100个 ^ 比较容易数不过来,所以写成 HEAD~100
例如:
git reset --hard HEAD^ 回退上一个版本
git reset --hard HEAD^^ 回退上上一个版本
git reset --hard HEAD~2 回退上上一个版本
git reset --hard e7ac994d43b43ed23841d2824f2545404a07e190(最新commit id)切回到最新版本

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的 HEAD 指针,当你回退版本的时候,Git仅仅是把HEAD从指向 当前版本改为要回退的版本, 然后顺便把工作区的文件更新了。所以你让 HEAD 指向哪个版本号,你就把当前版本定位在哪。

现在,你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的 commit id 怎么办?
在Git中,总是有后悔药可以吃的。当你用 git reset --hard HEAD^ 回退到某一个版本时,再想恢复到 最新版本 ,就必须找到最新的commit id。Git提供了一个命令 git reflog 用来记录你的每一次命令:
e7ac994 HEAD@{0}: reset: moving to e7ac994d43b43ed23841d2824f2545404a07e190
0af8553 HEAD@{1}: reset: moving to HEAD~2
e7ac994 HEAD@{2}: reset: moving to e7ac994d43b43ed23841d2824f2545404a07e190
0af8553 HEAD@{3}: reset: moving to HEAD~2
e7ac994 HEAD@{4}: reset: moving to e7ac994d43b43ed23841d2824f2545404a07e190
0af8553 HEAD@{5}: reset: moving to HEAD^^
e7ac994 HEAD@{6}: reset: moving to e7ac994d43b43ed23841d2824f2545404a07e190
dea999e HEAD@{7}: reset: moving to HEAD^
e7ac994 HEAD@{8}: commit: append GPL
dea999e HEAD@{9}: commit: add distributed
0af8553 HEAD@{10}: commit (amend): add readme.txt
566aa8c HEAD@{11}: commit (initial): add readme.tst

猜你喜欢

转载自blog.csdn.net/qq_33575901/article/details/80921600
今日推荐