git 回退到某个commit_it lesson2 版本回退
回顧上次的知識:
1,首先git init 初始化文件的狀態(tài),使用git管理文件。
2,git add xxx 告訴git把xxx文件添加到倉庫
3,git commit -m ‘xxxx’告訴git把文件提交到倉庫 并對提交的內(nèi)容作解釋(‘xxxx’)4,git status 可以時實的查看當(dāng)前文件的狀態(tài),比如是否修改?
5,假如修改了,具體修改的什么內(nèi)容? git diff xxx 查看具體哪里被修改
然后日常開發(fā),我們就會重復(fù)多次的git add 和 git commit這兩個git命令。commit就類似于保存一個“快照”。commit的每次記錄也都會被git給記錄下來,方便日后翻閱。
本次新知識:
從開始到現(xiàn)在我們已經(jīng)更改了幾次readme.txt文件,但是我們像看看到底每次都修改了什么?
git log 命令可以幫助我們查看commit過的歷史記錄。
$ git log commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) Author: Michael Liao <askxuefeng@gmail.com> Date: Fri May 18 21:06:15 2018 +0800add distributed under the GPL 每次修改你-m 后面添加的信息commit e475afc93c209a690c39c13a46716e8fa000c366 Author: Michael Liao <askxuefeng@gmail.com> Date: Fri May 18 21:03:36 2018 +0800add distributed 每次修改你-m 后面添加的信息commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 Author: Michael Liao <askxuefeng@gmail.com> Date: Fri May 18 20:59:18 2018 +0800wrote a readme file 每次修改你-m 后面添加的信息git log命令顯示從最近到最遠(yuǎn)的提交日志,我們可以看到3次提交。
接下來是最重要的時光穿梭機。我們把readme.txt回退到以前的版本。
首先,Git必須知道當(dāng)前版本是哪個版本,在Git中,用HEAD表示當(dāng)前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當(dāng)然往上100個版本寫100個^比較容易數(shù)不過來,所以寫成HEAD~100。
回退到以前的版本需要使用 git reset --hard 命令
$ git reset --hard HEAD^ HEAD is now at b216c75 append distributed此時,再次重新打開readme.txt文件就已經(jīng)還原上次的版本了。
此時我們復(fù)習(xí)下git log命令,查看下現(xiàn)在的版本日志
$ git log commit b216c75d2f7bd7cff68c0cd3437790c442931b68 (HEAD -> master) Author: kuiningChen <13288651469@163.com> Date: Tue Jun 5 22:14:21 2018 +0800append distributedcommit 22aaac183e488160e2d53082f4420a6393de2f0f Author: kuiningChen <13288651469@163.com> Date: Tue Jun 5 21:36:34 2018 +0800wrote a readme file我們發(fā)現(xiàn)竟然只有兩次修改了(原本三次修改的),最新的版本(也就是第三次的版本)已經(jīng)看不到了!好比你從21世紀(jì)坐時光穿梭機來到了19世紀(jì),想再回去已經(jīng)回不去了,腫么辦?
辦法其實還是有的,只要上面的命令行窗口還沒有被關(guān)掉,你就可以順著往上找啊找啊,找到那個append GPL的commit id是1094adb...,于是就可以指定回到未來的某個版本:
$ git reset --hard 1094a HEAD is now at add distributed under the GPL版本號沒必要寫全,前幾位就可以了,Git會自動去找。
小結(jié):
git log 查看版本提交的歷史記錄情況
用git log可以查看提交歷史,以便確定要回退到哪個版本
HEAD指向的版本就是當(dāng)前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id commit_id就是上面黃色的部分。
使用git reflog 用來記錄你的每一次命令
用git reflog查看命令歷史,以便確定要回到未來的哪個版本
看到(上圖)黃色部分的commit_id然后可以使用git reset --hard 命令回到想要過去的(未來)版本。
總結(jié)
以上是生活随笔為你收集整理的git 回退到某个commit_it lesson2 版本回退的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《王者荣耀》新年福利活动来袭!超多免费传
- 下一篇: 报告称PS5更容易成为玩家的主力游戏机