【工作小插曲】git HEAD 游離正確處理

今天公司更新代碼的時候提示Git HEAD detached...,好久沒有遇到過了。

HEAD,就是頭指針,紙箱目前當前分支的最新提交。當使用git checkout 分支名的時候會指到到相應的分支。

git checkout.jpg

有一種情況,就是使用了git checkout commitid。

這時候會導致新建了一個匿名分支,這時候提交代碼commit之后,如果直接切其他分支,剛才提交的代碼會全部丟失??!具體解決方法有兩個:

1、git stash 儲存起來然后切回主分支,再git stash pop彈出,解沖突。
2、創(chuàng)建臨時分支,切回主分支,merge解沖突。

實例場景演示

創(chuàng)建一些提交,如下,目前分支為master分支。


init.png

1、某一天要會看某次提交之后代碼,為了方便就直接git checkout commitid


git checkout commitid.jpg

2、之后忘記了這件事,那天下午直接在上面改代碼,改完git status看了一下發(fā)現(xiàn)這個提示。

head detached.jpg

這時候如果直接git add、git commit,然后git checkout master就會導致修改的代碼全部沒掉(當然,如果沒有修改直接git checkout master就行)??梢酝ㄟ^git branch看見目前在一個匿名分支當中。

匿名分支.jpg

此時,正確的做法有兩種:
方法1、通過git stash,如果有沖突解沖突,解完add、commit即可。

git stash
git checkout master
git stash pop
方法1.jpg

方法2、創(chuàng)建一個臨時分支并提交,然后切回主分支merge,如果有沖突還是解重復圖然后add commit即可,最后刪除臨時分支。

git checkout -b temp
git add .
git commit
git checkout master
git merge temp
解沖突然后add commit
git branch -d temp
方法2.jpg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,866評論 1 26
  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,198評論 5 147
  • 犀溪水暢浪白波, 透亮清澈無混濁。 陣陣輕風天爽朗, 花兒綠草滿山坡。
    張邦祥閱讀 234評論 0 1
  • 沉悶,心情很復雜,未有的恐懼,我親愛的人……,又是一天端午佳節(jié),你總是那么熱心,忙完家里的你又跑去鄰家?guī)兔?,可是?..
    未有的恐懼閱讀 343評論 0 0
  • 文/意磬 [25]臥底 目錄及簡介 自從上次滑旱冰認識王皓然以后,美娜對他充滿了好奇,這種好奇只是對他家的背景還有...
    意磬閱讀 880評論 22 32

友情鏈接更多精彩內(nèi)容