先記錄一下
Note: 把 submodule 想成一塊"檔案"
確認目前 submodule 在哪一個 commit 上
父版本庫 switch 回舊的 commit , 同時建一個新的 branch
( 隨便取一個 check )
( 隨便取一個 check )
再次確認目前 submodule 在哪一個 commit 上
嗯~ 還在原來那個上面
-> submodule 並不會隨著 父版本庫 做 Switch/Reset 等動作, 而跟著 switch 到相關聯的 commit 上
這時候, 就是 Submodule Update 派上用場的地方啦!!!
在 父版本庫, TortoiseGit -> Submodule Update...
好像可以勾掉 Initialize submodules (--init)
(--init -> 再研究)
成功訊息
查看 submodule 的 log:
粗體表示目前的 HEAD (ref) 在這個 commit 上
Note:
Submodule Update 後
HEAD 一定是 Detached 狀態
( HEAD attach 在 local branch 上時, 表示目前作用中的分支 )
=========================================================
很重要的注意事項:
如果要 submodule 之後有 wroking tree 修改, 且 HEAD 仍是 Detached
submodule 做 commit 時, 記得補給一個 branch
有 3 個方式:
(1) commit 時新建 branch
"Commit to:" 顯示 (no branch)
勾選 new branch , 填入 branch
按 OK
(2) commit 畫面直接按 OK 時
貼心的 TortoiseGit 會顯示
詢問要不要順便新建一個 branch
可按 Yes
跳出 Create Branch 視窗
( Switch to new branch 也幫你勾好了 )
可按 Yes
跳出 Create Branch 視窗
( Switch to new branch 也幫你勾好了 )
(3) 如果以上都沒做, 強制 commit 了
就自己手動在 HEAD 所在的 commit 補上一個 branch
但 HEAD 還是 Detached
所以需再做 Switch/Checkout to "branch name"...
來將 HEAD attach 到 branch 上
=========================================================
為什麼要補一個 branch ?
因為在 父版本庫 再做一次 Submodule Update 時,
嘿嘿嘿...
嘿嘿嘿...
submodule 的 HEAD 會 switch 到 父版本庫關聯的 submodule commit 上
(目前最新版本不會丟掉 wroking tree 的修改)
如果 submodule 有新的 commit, 卻沒有 branch 在上面
那在 log 畫面就看不到它了 (不過還是可以在 reflog 中找得回來)
總之, Detached HEAD 看起來就是怪怪的
所以, 無論何時看到它, 就先將它 attach 到 branch, 總不會是什麼壞事吧!!!
所以, 無論何時看到它, 就先將它 attach 到 branch, 總不會是什麼壞事吧!!!
=========================================================
每次 父版本庫 switch/reset hard 到別的 commit 上時, 不能自動做 Submodule Update 嗎?
目前好像還不行
不過 Switch/Reset 後的訊息畫面提供了 Update Submodules 按鈕, 可以直接按


每次 父版本庫 switch/reset hard 到別的 commit 上時, 不能自動做 Submodule Update 嗎?
目前好像還不行
不過 Switch/Reset 後的訊息畫面提供了 Update Submodules 按鈕, 可以直接按


沒有留言:
張貼留言