有關Git那些事兒(四)------穿越歷史與未來

上一小節(jié)我們學會了如何修改文件,并提交到Git版本庫中轨帜。我們再練習一次衩椒,修改love.txt文件如下:

I love you so much as the mouse like rice.
Do you know?
Every day

之后提交:

git add love.txt
git commit -m "append"

命令行返回如下:

[master 37ae842] append
 1 file changed, 1 insertion(+)

這樣頻繁地修改文件、提交文件到版本庫的過程苟弛,如同玩單機版RPG游戲時阁将,我們在打BOSS之前會手動存盤,以防萬一被殺掉做盅,可以從最近的記錄開始。Git也是如此亭敢,修改到一定程度可以手動保存图筹,利用commit這個命令。如果文件改亂了扣溺,還可以從最近的一個commit恢復瓜晤,而不是從頭開始。

現(xiàn)在哈恰,我們想查找love.txt中一共修改了幾次志群,我們可以利用git log命令查找歷史。

git log

命令行返回如下信息:

commit 37ae8429ec61ed6e43e5251df9ed729f831e7544 (*HEAD -> master*)
Author: xxlquanrou <xxlquanrou@163.com>
Date:   Sun Jan 6 14:05:41 2019 +0800

    append

commit 664f71e56621d229f2d98da0801aa3b1cf0c91ea
Author: xxlquanrou <xxlquanrou@163.com>
Date:   Sat Dec 29 22:39:30 2018 +0800

    add a sentence

commit b372d91bb9765311ce5d31bb2d1b083902a2244c
Author: xxlquanrou <xxlquanrou@163.com>
Date:   Fri Dec 28 23:26:12 2018 +0800

    a love song

我們從上面的信息中可以知道荠医,共提交了3次修改桑涎,最近的一次是append,上一次是add a sentence娃胆,第一次是a love song等曼。

友情提示:上面類似37ae8429ec61e...的是commit id(版本號)凿蒜,是SHA1計算出的非常龐大的數(shù)字胁黑,16進制表示,具有唯一性漂洋。另外力喷,你的跟我的肯定不一樣.

Git中,HEAD相當于C語言中的指針爽冕,指向當前版本披蕉,此時指最新提交的37ae842,上一個版本是HEAD^没讲,上上一個版本是HEAD^^,依次類推爬凑,50個版本可以寫50個^,不過不太容易數(shù)嘁信,可以寫成HEAD-50

現(xiàn)在穿剖,把當前版本append退回到上上一個版本a love song卦溢,可以使用git reset命令:

git reset --hard HEAD^^

命令行回復信息如下:

HEAD is now at b372d91 a love song

現(xiàn)在使用cat命令,查看love.txt中的內容贬芥,是不是回到了版本a love song

cat love.txt

命令行回復:

I love you as the mouse like rice.

果然回到了第一次”遇見“的地方~

我們可以用git log命令查看一下現(xiàn)在版本庫的情況:

git log

命令行回復如下:

commit b372d91bb9765311ce5d31bb2d1b083902a2244c (*HEAD -> master*)
Author: xxlquanrou <xxlquanrou@163.com>
Date:   Fri Dec 28 23:26:12 2018 +0800

    a love song

仔細對比蘸劈,發(fā)現(xiàn)中間的兩處修改的”存根“不見了尊沸,感覺像穿越回古代贤惯,回不去了壹甥!腫么破壶熏?

莫急。只要別手賤將剛才的命令行窗口關閉溯职,就還有補救的辦法帽哑。例如,想找回最近修改的那個版本apend僻族,先找到它的commit id版本號37ae84屡谐,然后使用git reset —hard命令可以回到現(xiàn)代:

git reset --hard 37ae84

版本號沒必要寫全,Git可以根據(jù)前面幾位自動判斷度秘。

命令行回復如下:

HEAD is now at 37ae842 append

再次查看love.txt中的內容:

cat love.txt

命令行回復如下:

I love you so much as the mouse like rice.
Do you know?
Every day

哈哈饵撑,我胡漢三又回來啦~

假如,你回退到了某個版本垢乙,關掉了電腦语卤,過了幾天又想回到最新的版本,你不知道此版本的commit id羊壹,可以使用git reflog命令查看你的每一次命令:

git reflog

命令行回復如下:

37ae842 (*HEAD -> master*) HEAD@{0}: reset: moving to 37ae84
b372d91 HEAD@{1}: reset: moving to HEAD^^
37ae842 (*HEAD -> master*) HEAD@{2}: commit: append
664f71e HEAD@{3}: commit: add a sentence
b372d91 HEAD@{4}: commit (initial): a love song

從上面可以看到齐婴,哪個版本的id號都是一目了然的。

現(xiàn)在的你情妖,可以在現(xiàn)在和過去之間隨意穿梭啦~

課后小結來啦:

  1. HEAD指向的是當前版本,是一個指針毡证×暇Γ可以使用命令git reset --hard commit_id進行版本之間的穿越,也可以使用相對關系git reset --hard HEAD^進行版本之間的轉換恤煞。
  2. 想回到過去居扒,使用git log指令可以查看歷史命令,確定想要回到歷史哪個版本(針對當前版本來說)喜喂。
  3. 想穿越到未來,使用git reflog命令可以查看歷史命令照弥,確定要回到未來的哪個版本(針對當前版本來說)诈茧。
  4. 查看當前版本中文件內容,使用指令cat <fileName>曾沈。

本小節(jié)到此結束鸥昏,預知后事如何,且聽下回分解哈~

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末障涯,一起剝皮案震驚了整個濱河市唯蝶,隨后出現(xiàn)的幾起案子遗嗽,更是在濱河造成了極大的恐慌,老刑警劉巖痹换,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異畅厢,居然都是意外死亡氮昧,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門霸琴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昭伸,“玉大人澎迎,你說我怎么就攤上這事夹供。” “怎么了哮洽?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵鸟辅,是天一觀的道長。 經(jīng)常有香客問我枪眉,道長再层,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任蒿秦,我火速辦了婚禮蛋济,結果婚禮上,老公的妹妹穿的比我還像新娘鹊杖。我一直安慰自己,他們只是感情好积瞒,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布登下。 她就那樣靜靜地躺著,像睡著了一般缰贝。 火紅的嫁衣襯著肌膚如雪畔濒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天赞弥,我揣著相機與錄音趣兄,去河邊找鬼艇潭。 笑死,一個胖子當著我的面吹牛蹋凝,可吹牛的內容都是我干的。 我是一名探鬼主播房交,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼候味,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起半开,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎憎夷,沒想到半個月后躬柬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抽减,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡卵沉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了琼掠。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片停撞。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡怜森,死狀恐怖谤牡,靈堂內的尸體忽然破棺而出副硅,到底是詐尸還是另有隱情恐疲,我是刑警寧澤套么,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布胚泌,位于F島的核電站,受9級特大地震影響零蓉,放射性物質發(fā)生泄漏穷缤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一章喉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧落包,春花似錦摊唇、人聲如沸妥色。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘹害。三九已至,卻和暖如春吮便,著一層夾襖步出監(jiān)牢的瞬間笔呀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工髓需, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留许师,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓僚匆,卻偏偏與公主長得像微渠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子咧擂,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,654評論 4 54
  • Git是目前最流行的版本管理系統(tǒng)松申,也是最先進的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,682評論 1 17
  • 1云芦、回款:截止到昨天下班前,從錄入的情況來看贸桶,回款很不理想舅逸。明天是回款最后一天,請大家一定要抓緊時間皇筛。目前銷售情況...
    松松勁柏閱讀 182評論 0 0
  • 聽張巨濤神侃也是有趣的事兒琉历,在桌子上吃飯,他繪聲繪色地講在昆明辦理財務手續(xù)之難水醋,過程的復雜旗笔、艱難和幽默,令人噴飯离例。...
    喬橋閱讀 525評論 1 2
  • 一. Vocabulary 1.strike it rich (1) 原文:Mom handed us $1,00...
    梁兩小無猜閱讀 295評論 0 0