那些年,我的Git Cheat Sheet

2021-08-13 16:37:05 字數 1755 閱讀 7488

1. 版本穿梭

head指向的版本就是當前版本。

git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id。

穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。

要重返未來,用git reflog檢視命令歷史,以便確定要回到未來的哪個版本。

2. 檢視某一行修改

如果你要檢視檔案的每個部分是誰修改的,那麼 git blame 就是不二選擇. 只要執行git blame [filename],你就會得到整個檔案的每一行的詳細修改資訊:包括sha串,日期和作者。

你也可以用"-l"引數在命令(blame)中指定開始和結束行:

$>git blame -l 160,+10 sha1_file.c 

ace1534d (junio c hamano 2005-05-07 00:38:04 -0700 160)}

ace1534d (junio c hamano 2005-05-07 00:38:04 -0700 161)

0fcfd160 (linus torvalds 2005-04-18 13:04:43 -0700 162)/*

0fcfd160 (linus torvalds 2005-04-18 13:04:43 -0700 163) * note! this returns a statically allocate

790296fd (jim meyering 2008-01-03 15:18:07 +0100 164) * careful about using it. do an "xstrdup()

0fcfd160 (linus torvalds 2005-04-18 13:04:43 -0700 165) * filename.

ace1534d (junio c hamano 2005-05-07 00:38:04 -0700 166) *

ace1534d (junio c hamano 2005-05-07 00:38:04 -0700 167) * also note that this returns the location

d19938ab (junio c hamano 2005-05-09 17:57:56 -0700 169) * db_environment environment var

3. 刪除遠端分支/tag

git push origin --delete

git push origin --delete tag

4. 更新submodule

git submodule foreach git submodule update

5. 修改submodule的坑

有些時候你需要對submodule做一些修改,很常見的做法就是切到submodule的目錄,然後做修改,然後commit和push。

這裡的坑在於,預設git submodule update並不會將submodule切到任何branch,所以,預設下submodule的head是處於游離狀態的(『detached head』 state)。所以在修改前,記得一定要用git checkout master將當前的submodule分支切換到master,然後才能做修改和提交。

那些年我喝過的飲料

印象中小的時候口渴總是很著急,而開水又涼得很慢,後來長大點,開始喝生水,原來家裡沒有水管的,我家有口大水缸,是石頭鑿的,平時父母打水來裝滿,裡面放個水瓢,用蓋子蓋好。主要是洗簌 做飯用的,我們口渴了也是直接揭開蓋子,用裡面水瓢舀一瓢出來直接喝,院子裡面和學校裡面還有水管,有時咳了直接對著水龍頭喝。我...

那些年我讀過的書

這篇部落格用來記錄我讀過一些書,以及有關書的一些總結,終生更新.每次更新我都會標註時間,沒有標註的就說明是寫這篇部落格之前看的,時間久遠,很多書看過到現在基本都忘了,暫且不計.本文重在記錄,為了結構清晰一些,我簡單的分了3大類 文學,社會和科學,分別對應文學類著作,社會科學類著作和自然科學類著作.除...

我的那些年 2 我畢業了

回到目錄 在家待業,等待老師介紹工作 2003年,我從校園走出來了,大部分同學都已經找到了工作,就在我們7月拿畢業證時,很多人都已經上班了,而我還在家裡等老師的訊息,當時自己也去過人才市場,記得是和我舅媽一起的,還請了吃了麥當勞,那應該是我第一次吃這種東西,人才市場是雍和宮的,在市場裡居然沒有乙個計...