iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
0

斷頭聽起來很可怕,但是其實只是HEAD標籤跟master標籤不在同個版本,或者是說HEAD標籤沒有指向任何分支標籤。


以這張圖片說明,master標籤指向版本號66b7de0HEAD標籤指向b01407d,現在這樣的情況就可以稱之為斷頭。
https://ithelp.ithome.com.tw/upload/images/20200930/20129144Mbh2yFVdPd.png


斷頭會怎麼樣呢?
以我自己遇到的情況來說,我其實就是寫到一半覺得寫太爛,想要回到過去某個版本重寫,於是checkout到過去某個版本,然後從那個版本開始編輯,就這樣開始了斷頭之旅,看起來都很正常,可以正常commit,但就是無法push
https://ithelp.ithome.com.tw/upload/images/20200930/20129144aUuoty8JLU.png


push時會一直顯示Loading畫面。
https://ithelp.ithome.com.tw/upload/images/20200930/20129144J0c5HAm56f.png

那要怎麼預防呢?
其實如果是用Xcode,最好的方法就是切換回去某版本後,並且要繼續編輯前,要建立一個分支,這樣那個版本就有分支標籤以及HEAD標籤,就不會斷頭了。

如果已經斷頭了,要如何解決呢?
像我目前這張圖的狀態就是已經斷頭了,並且我又繼續編輯跟commit。
https://ithelp.ithome.com.tw/upload/images/20200930/20129144RJxCqeL144.png


可以看到現在最新的版本號碼是fa1b3e3,並且這邊沒有任何分支標籤,並且如果你用終端機下git status,會發現HEAD其實還在b01407d上:
https://ithelp.ithome.com.tw/upload/images/20200930/20129144UklVDJLRlM.png


那怎麼辦呢,其實很簡單,只要在目前的版本上,新建立一個分支就好:
https://ithelp.ithome.com.tw/upload/images/20200930/20129144gJgoszE3aa.png

然後checkout到新建的分支上:
https://ithelp.ithome.com.tw/upload/images/20200930/20129144sKFgHbFBND.png

最後可以在終端機下git status指令來看看現在的狀態,沒有出現HEAD detached from b01407d就代表解除斷頭狀態囉~


上一篇
Day15-使用Xcode的時光機回到過去(checkout)
下一篇
Day17-在同一個頁面顯示不同UICollectionView之先弄個UICollectionView出來(Programmatic UI、Layout設置、Enum包裝)
系列文
想知道自己iOS具現化系能力有多強嗎?實作幾個App就知道了30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言