亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GIT子模塊更新

GIT子模塊更新

Git
MM們 2019-05-30 10:32:37
GIT子模塊更新我不清楚以下是什么意思GIT子模塊更新):.將使子模塊的頭被分離,除非--rebase或--merge被指定.。如何--rebase/--merge改變事情?我的主要用例是有一堆中央repos,我將通過子模塊嵌入到其他repos中。我希望能夠改進這些中央repos,要么直接在它們原來的位置,要么從它們的嵌入repos(通過子模塊使用它們的那些)。從這些子模塊中,我可以創建分支/修改并使用推拉/拉,就像我在常規的重新部署中一樣,還是有一些事情需要小心呢?我將如何將引用提交的子模塊從例如(標記)1.0提升到1.1(即使原始回購的頭已經是2.0),或者選擇使用哪個分支的提交呢?
查看完整描述

4 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

要解決-重基VS-合并選項:

假設您有超級回購A和子模塊B,并且想在子模塊B中做一些工作,您已經完成了作業,并且在調用之后就知道了。

git submodule update

您處于無頭狀態,因此此時所做的任何提交都很難恢復。因此,您已經開始在子模塊B中創建一個新分支。

cd B
git checkout -b bestIdeaForBEver
<do work>

同時,項目A中的其他人已經決定,B的最新和最偉大的版本才是真正值得A使用的。出于習慣,您可以將最近的更改合并起來,并更新您的子模塊。

<in A>
git merge develop
git submodule update

哦不!您再次處于無頭狀態,可能是因為B現在指向與B的新提示相關聯的SHA,或者其他一些提交。如果你有:

git merge develop
git submodule update --rebase

Fast-forwarded bestIdeaForBEver to b798edfdsf1191f8b140ea325685c4da19a9d437.
Submodule path 'B': rebased into 'b798ecsdf71191f8b140ea325685c4da19a9d437'

現在,對B最好的想法已經被重新建立在新的提交上,更重要的是,您仍然在B的開發分支上,而不是處于無頭狀態!

(-Merge將從preUpdateSHA的更改合并到PostUpdateSHA中,而不是將您的更改重新定位到PostUpdateSHA。)


查看完整回答
反對 回復 2019-05-30
?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

Git 1.8.2提供了一個新選項--remote這將完全支持這種行為。跑動

git submodule update --rebase --remote

將從每個子模塊中的上游獲取最新的更改,將它們重新定位到其中,并簽出子模塊的最新修訂版。如醫生說出來:

-偏遠

此選項僅對UPDATE命令有效。使用子模塊的遠程跟蹤分支的狀態,而不是使用超級項目的SHA-1記錄來更新子模塊。

這相當于運行git pull在每個子模塊中,這通常正是您想要的。


查看完整回答
反對 回復 2019-05-30
  • 4 回答
  • 0 關注
  • 3175 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號