星期五, 9月 22, 2017

[git] detached Head

上 git 課程的內容,主要是說明 Detached Head 如何發生和修正

此為預設 git 線圖

[git] detach Head-1

對 Commit G 進行 git checkout,從下圖就知道,Detached Head 已經產生啦,該狀態是不在任何 branch 上的喔,應該建議應該下 git checkout -b BranchName 來建立 branch,讓該 commit 有所屬

[git] detach Head-2

假設使用者忽略上圖訊息,就直接寫 Code 且又 commit ,commit 名稱為 DetactHeadCommit

[git] detach Head-3

透過 TortoiseGit 來觀察線圖變化

[git] detach Head-4

假設在 Detacted Head 上完成,準備要切回 master 上來進行合併,切回 master 當下會有下面訊提醒,遺留一個 commit,要建立一個 branch 來保留它喔

[git] detach Head-5

利用 TortoiseGit 來觀察線圖,發現 DetactHeadCommit 不在線圖上啦

[git] detach Head-6

此時利用 git reflog 指令來找出 DetachHeadCommit 的 SHA1

[git] detach Head-7

利用 git checkout -b efa879 來讓 DetactHeadCommit 有所屬 branch

[git] detach Head-8

再利用 TotoiseGit 來顯示該 branch,就會看見 efea987 的 Parent Commit 是 Commit G 囉,DetactHeadCommit 並沒有消失不見,Code 還在

[git] detach Head-9

而 ToroiseGit 在這部分有防呆,當要 git checkout commit 時,option 內會預設要建立 branch

[git] detach Head-10

沒有留言:

張貼留言