上 git 課程的內容,主要是說明 Detached Head 如何發生和修正
此為預設 git 線圖
對 Commit G 進行 git checkout,從下圖就知道,Detached Head 已經產生啦,該狀態是不在任何 branch 上的喔,應該建議應該下 git checkout -b BranchName 來建立 branch,讓該 commit 有所屬
假設使用者忽略上圖訊息,就直接寫 Code 且又 commit ,commit 名稱為 DetactHeadCommit
透過 TortoiseGit 來觀察線圖變化
假設在 Detacted Head 上完成,準備要切回 master 上來進行合併,切回 master 當下會有下面訊提醒,遺留一個 commit,要建立一個 branch 來保留它喔
利用 TortoiseGit 來觀察線圖,發現 DetactHeadCommit 不在線圖上啦
此時利用 git reflog 指令來找出 DetachHeadCommit 的 SHA1
利用 git checkout -b efa879 來讓 DetactHeadCommit 有所屬 branch
再利用 TotoiseGit 來顯示該 branch,就會看見 efea987 的 Parent Commit 是 Commit G 囉,DetactHeadCommit 並沒有消失不見,Code 還在
而 ToroiseGit 在這部分有防呆,當要 git checkout commit 時,option 內會預設要建立 branch
沒有留言:
張貼留言