簡體   English   中英

git 從帶有子模塊的 repo 中的先前提交創建新分支

[英]git create new branch from a previous commit in repo with submodules

我有一個帶有多個子模塊的 git 存儲庫。 在父倉庫的“master”分支上,假設歷史看起來像 A -> B -> C -> D -> E -> F (HEAD)。 我的父 repo 設置為子模塊指向一個分離的 HEAD(比如這個“HEAD detached at”)。 我想 go 回到父倉庫的“master”分支上的先前提交,提交“C”並將其中一個子模塊更新為更新的提交,並將父倉庫的“master”分支的這個新 state 推送到遠程。

我該如何 go 關於這個?

我有以下步驟,但我不確定這些步驟是否正確。

git reset --hard HEAD~3 (which takes me to commit C)
git submodule update --init
cd path/to/submodule ; git checkout <commit_id> ; cd -
git add path/to/submodule ; git commit
git push origin master

這是正確的程序嗎? 我是否需要在最后一步中使用 --force 選項。 我查找了類似的問題,關於它如何在沒有子模塊的常規 git 倉庫中完成,但我不確定如何使用帶有子模塊的倉庫來做到這一點。 使用子模塊的新手。

我的父倉庫設置為子模塊指向一個分離的 HEAD

好吧,這幾乎不是“設置”。 分離的 HEAD 是子模塊的自然 state。 大多數情況下,大多數子模塊都處於分離的 HEAD state 中,除非您故意修復它; 即使通過手動修復,它們也可能很快就會切換到分離的 HEAD。

這是正確的程序嗎?

是的,看起來不錯。

我需要使用 --force

是的,因為您以非快進方式移動分支指針。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM