HEAD和DETACHED狀態(tài)

HEAD基礎(chǔ)

git checkout 實(shí)際上是修改HEAD文件的內(nèi)容,讓其指向不同的branch院刁。HEAD文件指向的branch就是當(dāng)前branch翔始。
一般來講彪置,HEAD的內(nèi)容是指向staging(暫存區(qū))的master文件的

# 查看當(dāng)前HEAD指向
$ cat .git/HEAD
ref: refs/heads/dev

當(dāng)然也可指向其他索引文件斩箫,不管怎么樣吏砂,這個(gè)索引文件的內(nèi)容又由git reset控制。
通過git branch命令看到的結(jié)果和HEAD文件內(nèi)容一致乘客。

# 查看分支詳情
$ git branch -v
* dev    c909fd3 add c
  master 83428ce add e
# 查看工作區(qū)狐血、暫存區(qū)和HEAD的差異

$ git checkout
M   b.py

detached HEAD

如果讓HEAD文件指向一個(gè)commit id,那就變成了detached HEAD易核。git checkout 可以達(dá)到這個(gè)效果匈织,用下面的命令:

# 切換指定commit的前一個(gè)commmit ^指的是前一個(gè) ^^前兩個(gè)
$ git checkout dev^^ 
or 
$ git checkout deab1f9890^^ # deab1f9是dev分支最后一個(gè)提交的commit
Note: checking out 'dev^^'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 439ac73... add b
# 查看分支詳情
$ git branch -v
* (HEAD detached at 439ac73) 439ac73 add b
  dev                        deab1f9 update
  master                     83428ce add e

注意
現(xiàn)在head已經(jīng)指向commit b,這就是所謂的dedatched head狀態(tài)牡直。從這里我們也可以看出缀匕,head是當(dāng)前index的狀態(tài),而不是當(dāng)前分支(的最近c(diǎn)ommit節(jié)點(diǎn))碰逸。這僅僅意味著head指向某個(gè)特定的commit點(diǎn)乡小,而不是指向每一個(gè)特定的分支(的頂端節(jié)點(diǎn))。如果我們此時(shí)提交一個(gè)commit花竞,只能被head索引到劲件,不屬于任何一個(gè)分支掸哑。當(dāng)然约急,我們還可以給在這個(gè)“無名分支”的基礎(chǔ)上繼續(xù)提交。

git checkout master 我們一定要注意苗分,剛在提交的commit已經(jīng)處于無法被索引到的狀態(tài)厌蔽。最終將被git的默認(rèn)回收機(jī)制所回收,除非我們?cè)谒鼈儽换厥罩皠?chuàng)建一個(gè)指向他們的索引摔癣。如果我們沒有從剛才的commit離開的話奴饮,可以用接下來的命令創(chuàng)建一個(gè)指向的索引

# 創(chuàng)建來一個(gè)foo分支,指向f择浊,接著更新head指向分支foo戴卜,此時(shí),我們不再處在detached head的狀態(tài)
$ git checkout -b foo

# 同樣創(chuàng)建了一個(gè)foo分支琢岩,但是head仍然指向master分支投剥,仍然處在detached head的狀態(tài)
$ git checkout foo

# 創(chuàng)建了一個(gè)新標(biāo)簽foo,仍處于detached的狀態(tài)
$ git tag foo

如果已經(jīng)離開了detached HEAD狀態(tài)下的commit担孔,我們先要回到commit才可以創(chuàng)建指向它的索引
查看最近head指向的commit點(diǎn)

$ git log -g -2 HEAD
or 
$ git reflog -2 HEAD

恢復(fù)

#  恢復(fù)
$ git checkout dev
M   b.py
Previous HEAD position was c909fd3... add c
Switched to branch 'dev'
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末江锨,一起剝皮案震驚了整個(gè)濱河市吃警,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌啄育,老刑警劉巖酌心,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異挑豌,居然都是意外死亡安券,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門浮毯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來完疫,“玉大人,你說我怎么就攤上這事债蓝】呛祝” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵饰迹,是天一觀的道長(zhǎng)芳誓。 經(jīng)常有香客問我,道長(zhǎng)啊鸭,這世上最難降的妖魔是什么锹淌? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮赠制,結(jié)果婚禮上赂摆,老公的妹妹穿的比我還像新娘。我一直安慰自己钟些,他們只是感情好烟号,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著政恍,像睡著了一般汪拥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上篙耗,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天迫筑,我揣著相機(jī)與錄音,去河邊找鬼宗弯。 笑死脯燃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蒙保。 我是一名探鬼主播辕棚,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了坟募?” 一聲冷哼從身側(cè)響起岛蚤,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懈糯,沒想到半個(gè)月后涤妒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赚哗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年她紫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屿储。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贿讹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出够掠,到底是詐尸還是另有隱情民褂,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布疯潭,位于F島的核電站赊堪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏竖哩。R本人自食惡果不足惜哭廉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望相叁。 院中可真熱鬧遵绰,春花似錦、人聲如沸增淹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽埠通。三九已至赎离,卻和暖如春逛犹,著一層夾襖步出監(jiān)牢的瞬間端辱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國打工虽画, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舞蔽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓码撰,卻偏偏與公主長(zhǎng)得像渗柿,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Git是目前最流行的版本管理系統(tǒng)朵栖,也是最先進(jìn)的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,698評(píng)論 1 17
  • 愿得一人心颊亮,至死不渝。 這應(yīng)該是你——蓋茨比這輩子唯一的追求陨溅。 可是终惑,你的真心“終于”被浪費(fèi)了。 因?yàn)轺煳鲗?duì)你的驚...
    軒凌閱讀 278評(píng)論 0 1
  • 我們經(jīng)常聽到父母教訓(xùn)不聽話的孩子:你看別人家的孩子霸奕,比你聽話、比你懂事吉拳、比你討人喜歡… 有時(shí)候质帅,孩子們也會(huì)在一起互...
    像個(gè)孩子520閱讀 1,269評(píng)論 0 3
  • 貓群是我加入的第一個(gè)付費(fèi)社群,現(xiàn)在想來留攒,當(dāng)時(shí)的招募令真是簡(jiǎn)單粗暴临梗,貓爺真是任性:你加入或者不加人,我的規(guī)則就是這樣...
    羊小彩閱讀 326評(píng)論 4 1
  • 近期工作有些忙稼跳,一直沒有動(dòng)筆盟庞。一直覺得自己在工作中是個(gè)努力上進(jìn),積極做好本職工作的人汤善。但不知道是怎么了什猖,近期好些事...
    安亦然2020閱讀 1,927評(píng)論 4 3