国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Git —— submodule 操作說明

這篇具有很好參考價值的文章主要介紹了Git —— submodule 操作說明。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Git —— submodule 操作說明

1. add 添加子模塊

# git submodule add -b master https://github.com/coolsnowwolf/lede.git ./lede
git submodule add -b <branch-name]> <git-repository-url> [local-path]
# 本地提交
git commit -m "add submodule xxxx"
# 推送到遠(yuǎn)程倉庫
git push

2. checkout 子模塊檢出

# 有兩種方式:
# 1. 使用 --recursive 參數(shù),跟隨主倉庫遞歸 clone
git clone <your main repository url> --recursive # 此時 clone 下來的主項目會直接 clone 遠(yuǎn)程倉庫中記錄的 commit id 版本的子模塊

# 2. 單獨 checkout 子模塊
git clone <your main repository url> # 不帶 --recursive 遞歸參數(shù)時,submodule 無法被一起 clone 下來
git submodule update --init --recursive # 將 submodule 更新到遠(yuǎn)程倉庫中記錄的 commit id 版本

3. update 更新/切換子模塊 commit id 和當(dāng)前分支

這里存在一個較大的坑,默認(rèn)檢出的子模塊并不屬于任何分支,而是一個 “detached head” ,雖然可以提交更改,但是并沒有本地分支跟蹤提交的更改,這意味著下次更新子模塊會丟失這些更改。

因此在對子模塊進(jìn)行開發(fā)修改前,請先切換其所屬分支和對應(yīng)的 commit id。

# 默認(rèn)添加的 submodule 的 commit id 是 add 時默認(rèn)分支當(dāng)前的一個 commit id,當(dāng)子模塊原始倉庫更新后,期望切換到指定的 commit id 版本,或者像要切換分支
git pull
git submodule update # 更新本地倉庫,避免出現(xiàn)沖突
cd <submodule dir>
git checkout <branch name> # 切換分支
git pull # 拉取新分支源碼
git checkout <commit id> # 更新子模塊版本

# 回到主倉庫目錄,提交子模塊的引用版本修改
cd ..
git add . # 暫存 submodule 的引用版本修改
git commit -m "update submodule xxx from xxx to xxx" # 提交
git push # 推送到遠(yuǎn)程倉庫

4. commit 提交子模塊

git pull 
git submodule update # 確保提交前已將本地倉庫更新到遠(yuǎn)程倉庫最新版本,避免提交出現(xiàn)沖突
cd <submodulde dir>
git add .
git commit -am "submodule modify"
git push # 將子模塊提交的更改推送至遠(yuǎn)程倉庫

由于子模塊和主模塊是獨立的兩個倉庫,主模塊僅僅應(yīng)用了子模塊的 url 和 commit id。因此當(dāng)子模塊推送更改后,生成新的 commit id,但是主模塊對子模塊的引用配置并未發(fā)生更改,因此需要在主模塊中同步進(jìn)行提交更改。

cd ../ # 回到主模塊目錄
git add .
git commit -am "submodule reference modify"
git push # 推送主模塊對子模塊的引用記錄更改到遠(yuǎn)程倉庫

可以看到對于子模塊的修改,我們需要分別提交和推送子、主木塊的更改,當(dāng)然我們也可以將 “推送至遠(yuǎn)程倉庫” 這一步合并:

cd <main module dir> # 進(jìn)入主模塊目錄
# 使用 --recurse-submodules=on-demand 選項,可以在推送主模塊更改時,自動推送未推送的子模塊
git push --recurse-submodules=on-demand

如果出現(xiàn)子模塊提交了更改記錄,但是未推送到遠(yuǎn)程倉庫,主模塊提交了子模塊引用記錄的變更,并完成了推送到遠(yuǎn)程倉庫的操作。此時拉取主模塊沒問題,但是在拉取子模塊時,會出現(xiàn) “not our ref” 的報錯。這是因為主模塊引用了一個遠(yuǎn)程倉庫未記錄的 commit id 版本的子模塊。需要在提交了變更記錄的子模塊中完成 push 即可。為了避免忘記推送子模塊修改,僅推送了主模塊的引用記錄變更,可以將主模塊的推送命令修改為:

# 使用 --recurse-submodule=check 選項可以自動檢查子模塊未 push 的錯誤
git push --recurse-submodule=check

當(dāng)使用 “–recurse-submodule=check” 選項時,如果子模塊存在未 push 情況,則當(dāng)前 push 操作會報警;并且如果子模塊存在 push 失敗的情況時,也同樣會報錯??梢灾苯訉⑵鋵懭?git 配置,減少重復(fù)勞動:

git config push.recurseSubmodules check

5. modify 修改 submodule 遠(yuǎn)程倉庫 url

cd <main module dir> # 進(jìn)入主模塊目錄
# 修改主模塊中 .gitmodules 中的 url
# 使用 sync 命令同步修改至 .git/config 中
git submodule sync
git commit -am "modify submodule url" # 提交修改
git push # 推送到主模塊遠(yuǎn)程倉庫

如果時別人修改了子模塊 url,則拉取主模塊的更新后,使用 sync 命令同步到本地 .git/config 中即可:文章來源地址http://www.zghlxwxcb.cn/news/detail-752181.html

cd <main module dir> # 進(jìn)入主模塊目錄
git pull # 拉取主模塊更新,即獲取 .gitmodule 中 url 的修改
git submodule sync # 將 .gitmodule 中的修改同步到本地倉庫的配置中 .git/config

6. deinit 移除已有的 submodule

git submodule deinit <submodule name>
git rm <submodule dir>
git commit -am "remove submodule xxx"
git push

參考資料

  1. 《Git - 使用git submodule的規(guī)范操作》
  2. 《Git submodule 知識總結(jié)》
  3. 《來說說坑爹的 git submodule》

到了這里,關(guān)于Git —— submodule 操作說明的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 如何使用git submodule:添加、查看、更新、修改、刪除、克隆含submodule的項目

    Git submodule 功能可以讓我們在一個倉庫中添加另一個倉庫作為當(dāng)前倉庫的子倉庫,這樣既方便了代碼管理,也免去我們重復(fù)造輪子的精力和時間。注意:Git submodules 只是某個倉庫某一時刻的一個狀態(tài)的引用,即某個 commit 的引用。 添加遠(yuǎn)程項目默認(rèn)分支 添加遠(yuǎn)程項目指定分支

    2024年02月04日
    瀏覽(28)
  • 第1關(guān):單循環(huán)鏈表的實現(xiàn)—鏈表的添加、遍歷任務(wù)描述相關(guān)知識單循環(huán)鏈表添加操作遍歷循環(huán)鏈表編程要求測試說明任務(wù)描述在操作單鏈表時,

    第1關(guān):單循環(huán)鏈表的實現(xiàn)—鏈表的添加、遍歷 200 任務(wù)要求 參考答案 評論42 任務(wù)描述 相關(guān)知識 單循環(huán)鏈表 添加操作 遍歷循環(huán)鏈表 編程要求 測試說明 任務(wù)描述 在操作單鏈表時,我們有時希望從單鏈表中的任一結(jié)點出發(fā)都能遍歷整個鏈表,但對于單鏈表來說,只有從頭結(jié)點

    2024年02月06日
    瀏覽(19)
  • Git在已有的項目中引入Submodule子模塊管理:添加、更新、刪除(實戰(zhàn)示例代碼)

    在進(jìn)行Git版本控制的過程中,有時候我們需要在已有的項目中引入子模塊,以便復(fù)用其他獨立的Git存儲庫的代碼或文件。本文將詳細(xì)介紹如何在已有項目下添加、更新和刪除Git的Submodule子模塊,并提供相關(guān)的示例代碼。 假設(shè)我們已經(jīng)有一個主項目(my-main-project)的Git存儲庫,

    2024年02月07日
    瀏覽(112)
  • 【Git】本地倉庫管理遠(yuǎn)程庫(GitHub)——clone(下載)、commit(添加到本地倉庫)、push(提交到遠(yuǎn)程倉庫)、pull(拉取)操作

    【Git】本地倉庫管理遠(yuǎn)程庫(GitHub)——clone(下載)、commit(添加到本地倉庫)、push(提交到遠(yuǎn)程倉庫)、pull(拉取)操作

    目錄 使用遠(yuǎn)程倉庫的目的 將本地倉庫同步到git遠(yuǎn)程倉庫 1.克隆遠(yuǎn)程倉庫(clone) 2.新建一個文件 3.將工作區(qū)的文件添加到暫存區(qū) 4.將暫存區(qū)的文件添加到本地倉庫(commit) 5.提交(同步)到遠(yuǎn)程倉庫(push) 6.遠(yuǎn)程庫拉取到本地庫(pull) 7.團(tuán)隊協(xié)作開發(fā)和跨團(tuán)隊協(xié)作開發(fā)(開源項目) 作用:備

    2024年01月21日
    瀏覽(131)
  • iotop命令使用說明及iotop輸出排序操作說明

    iotop命令使用說明及iotop輸出排序操作說明

    iotop是一個用來顯示實時的磁盤活動?的工具,可查看哪些程序、進(jìn)程或線程占用io過多。 iotop監(jiān)控 Linux 內(nèi)核輸出的 I/O 使用信息,并且顯示一個系統(tǒng)中進(jìn)程或線程的當(dāng)前 I/O 使用情況。它顯示每個進(jìn)程/線程讀寫 I/O 帶寬。它同樣顯示當(dāng)?shù)却龘Q入和等待 I/O 的線程/進(jìn)程花費的時

    2024年04月12日
    瀏覽(24)
  • ElasticSearchHead操作說明

    ElasticSearchHead操作說明

    (76條消息) Elasticsearch-Head(簡稱Head)-Java文檔類資源-CSDN文庫 1、下載資源包,解壓 2、進(jìn)入elasticsearch-head-master,執(zhí)行:npm install? (在這之前需要安裝nodejs) 3、輸入npm run start命令啟動elasticsearch-head 使用補(bǔ)充:本地使用的時候啟動一下,服務(wù)器上如果安裝一個,關(guān)閉終端就停止運行

    2023年04月16日
    瀏覽(20)
  • RabbitMQ 管理界面操作說明

    RabbitMQ 管理界面操作說明

    當(dāng)我們安裝好RabbitMQ,并開啟了 rabbitmq_management 插件并重啟RabbitMQ服務(wù)后,我們就可以訪問管控臺了。 rabbitmq_management 開啟后,重啟RabbitMQ服務(wù),然后瀏覽器訪問 http://localhost:15672/ 賬號:guest 密碼:guest 登錄進(jìn)去后: 點擊隊列名,可以進(jìn)行消息數(shù)量的查看: 消息內(nèi)容查看: A

    2023年04月17日
    瀏覽(25)
  • QGIS 3D功能操作說明

    QGIS 3D功能操作說明

    QGIS 可以輕松快速地創(chuàng)建?3D?地圖和可視化。 可用于3d數(shù)據(jù)效果瀏覽及與2D數(shù)據(jù)的對比及數(shù)據(jù)的打印輸出。具體功能如下。 1.在?QGIS?中,您可以通過幾個簡單的步驟創(chuàng)建?3D?模型。 ?? ? (1)在QGIS中添加3D?數(shù)據(jù)的數(shù)據(jù)層,例如DEM,以供3D功能使用。 ?? ?????????? (2) 打開

    2024年02月17日
    瀏覽(25)
  • C#關(guān)于byte的操作說明

    獲取byte中每一位的值 獲取int16中其中某幾位的數(shù)值 bit 內(nèi)容 ? 11-15 預(yù)留 ? 10 值7 ? 6-9 值6 ? 5 值5 ? 4 值4 ? 3 值3 ? 2 值2 ? 0-1 值1 ? public UInt16 ToByte() { UInt16 ret = 0x00; ret = (UInt16)(ret | ((UInt16)Waypoint 9)); ret = (UInt16)(ret | ((UInt16)Side 8)); ret = (UInt16)(ret | ((UInt16)Head 7)); ret = (UInt16)(ret

    2024年02月09日
    瀏覽(21)
  • ORACLE表空間說明及操作

    數(shù)據(jù)存儲:表空間是數(shù)據(jù)庫中存儲數(shù)據(jù)的邏輯結(jié)構(gòu)。它提供了用于存儲表、索引、視圖、存儲過程等數(shù)據(jù)庫對象的空間。通過劃分?jǐn)?shù)據(jù)和索引等對象的存儲,可以更好地管理和組織數(shù)據(jù)庫的物理存儲結(jié)構(gòu)。 性能管理和優(yōu)化:通過將不同類型的數(shù)據(jù)存儲在不同的表空間中,可以

    2024年02月08日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包