通常,我們工作在某乙個分支上,比如 master 分支。這個時候 master 指標和 head 指標是一起前進的,每做一次提交,這兩個指標就會一起向前挪一步。但是在某種情況下(例如 checkout 了某個具體的 commit),master 指標 和 head 指標這種「繫結」的狀態就被打破了,變成了分離頭指標狀態。我那天遇到的情況是,master 和 head 指標看上去指在同乙個 commit 上,但其實已經處在分離頭指標狀態。當我在此時又做了一次新的提交時,head 指標跑到 master 指標前面去了。如果我直接檢出 master 分支,head 指標就會回退一格到 master 指標的位置,而最新的那次提交就變成了孤立的提交,沒有任何分支能追蹤到它,剛才的活白幹了。
# 強制將 master 分支指向當前頭指標的位置$ git branch -f master head
# 檢出 master 分支
$ git checkout master
參考:
Git頭指標分離狀態
我們知道在git中分支是指向提交,而head指標指向分支。所謂的分離頭指標狀態就是head不再指向分支,而是直接指向某個commit。對於下圖,此時分支master分支指向c1 c1是某次提交的commit id head指向master。進行任意一次提交,master分支會重新指向新的提交。如果執...
頭資訊 系統掌握Git之 分離頭指標與合併操作
分離頭指標表示我們在工作在沒用分支的情況下,我們通過git log 列印日誌,選擇中間的乙個commitid,然後進行checkout操作,git checkout 82fdac4baac702ad0473c講git切換到這次提交。在通過git branch檢視分支,可見當前分支在 頭指標分離於 8...
頭指標和頭結點
對於乙個鍊錶來說 頭指標是必須的 頭結點是可有可無的 不過頭結點為鍊錶的插入實現了統一化 在乙個沒有頭結點的鍊錶裡面,我們要插入乙個結點我們要傳的是頭指標的位址,因為我們在插入第乙個結點的時候要改變頭指標 想改表乙個東西就要傳它的位址,我們現在要改變的是這個指標 所以要傳的是這個指標的位址,這裡考慮...