校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 詳解git submodule使用以及注意事項

詳解git submodule使用以及注意事項

熱門標簽:襄陽外呼增值業(yè)務(wù)線路解決方案 海南人工外呼系統(tǒng)哪家好 廊坊地圖標注申請入口 地圖標注資源分享注冊 合肥阿里辦理400電話號 高德地圖標注公司位置需要錢嗎 慶陽外呼系統(tǒng)定制開發(fā) 怎么去掉地圖標注文字 北京外呼系統(tǒng)咨詢電話

一、背景

在平時的軟件開發(fā)過程中常常會有這樣的場景,自己負責的某個模塊會依賴其他模塊或者第三方的library。這時你自己的模塊是一個獨立的代碼倉庫,你想要實現(xiàn)這樣一種功能,當你從你的模塊的代碼倉庫里把代碼拉到本地來的時候,能自動的將你依賴的模塊或第三方庫都拉到指定的目錄當中去。

當然要實現(xiàn)這個功能的方法有很多,比如使用repo之類的工具,又比如如果你使用的是svn作為版本管理工具,那么你可以使用svn的external機制來引用第三方的project。

這里要說的是使用git作為版本管理工具的情況。

二、git submodule

其它的細枝末節(jié)就不再贅述了,咱直奔主題。

先來看具體用例:

目前有一個模塊A,其代碼倉庫的地址為:projectA.git, 它需要引用另一個模塊B, 其代碼倉庫的地址為:projectB.git。

假設(shè)模塊A的本地目錄為:projectA

希望引用模塊B為模塊A的子模塊,其在模塊A目錄下的路徑為: projectA/projectB

這里我們通過git 的submodule機制來實現(xiàn)。

比如在命令行里可以直接使用如下命令:

cd projectA
git submodule add projectB.git projectB

注: 這個submodule的 子目錄指定時不能以 “/”結(jié)尾, 比如上面的命令,就不能寫成 projectB/ 這個樣子。

就這么簡單的一句git命令就可以搞定了,當然這還沒完,運行完這個命令之后,在projectA目錄執(zhí)行g(shù)it status命令,可以看到如下的結(jié)果:


這時需要使用git commit命令和git push命令,將添加模塊B為模塊A的子模塊的結(jié)果push到模塊A的代碼倉庫里面去。

三、git clone包含子模塊的代碼倉庫

此時,就可以使用git clone命令來抓取模塊A的代碼倉庫,但要同時抓取到子模塊的倉庫的話,還需要一些方法:

正常的使用git clone命令,然后再使用 git submodule init 和git submodule update來獲取子模塊

git clone projectA.git
cd projectA
git submodule init
git submodule update

其運行結(jié)果如下:


在使用git clone命令時,加上–recurse-submodules或–recursive 這樣的遞歸參數(shù)

git clone --recursive projectA.git

其運行結(jié)果如下:


四、tortoisegit操作submodule

如果是使用tortoisegit的話,也可以使用圖形化界面進行submodule的相關(guān)操作,如添加submodule就選擇如下圖所示的菜單:


添加子模塊的界面大概就是下面這個樣子:


這里和上面一樣“path”一欄不能以”/”結(jié)尾。 填寫之后,點擊OK,就會在主模塊的目錄下添加對應的子模塊。

在clone時也是一樣的,它既可以只是clone,然后用上面菜單中,Submodule Update 選項來抓取子模塊的內(nèi)容,也可以在clone時選擇遞歸參數(shù),如下所示:


五、忽略submodule中的修改或新增文件

我們引用第三方的project,大多數(shù)情況都是想以“只讀”的方式引用,不關(guān)心第三方project抓取下來之后是不是被修改,或者是在其目錄中添加了untracked的file, 因為我們只是拉取第三方的project,而不會(往往時不能或不允許)對第三方project進行提交。

以上面的模塊A和模塊B的例子來說,如果模塊A和模塊B中都有進行修改,其結(jié)果可能就是如下這個樣子:


這并不是我們想要的結(jié)果。一開始的時候我的想法是使用 .gitignore 來忽略submodule的修改,但是無法做到,后來經(jīng)過一番搜索,終于找到了解決良藥。在添加了submodule之后,project的目錄下回生成一個.gitmodules文件,這個文件記錄了子模塊的路徑和倉庫地址等信息,如下圖所示:


我們要做的就是在[submodule “projectB”]中添加一個ignore子項,這個ignore子項可以有上個可選的值,untracked, dirty和all, 它們的意思分別是:

  • untracked :忽略 在子模塊B(也就是projectB目錄)新添加的,未受版本控制內(nèi)容
  • dirty : 忽略對projectB目錄下受版本控制的內(nèi)容進行了修改
  • all : 同時忽略untracked和dirty

這里我們先選擇dirty(至少先保證不提交對子模塊B的任何修改),其他的可以根據(jù)具體需求來進行選擇。

添加ignore子項之后的.gitmodules文件的內(nèi)容如下所示:


然后我們再使用git status查看,可以得到圖下結(jié)果:


可以看出,之前 “modified: projectB(modified content)” 已經(jīng)不見了, 此時對修改后的.gitmodules文件進行commit和push, 之后在查看status或做commit時就可以忽略掉對子模塊B修改的部分了。

到此這篇關(guān)于詳解git submodule使用以及注意事項的文章就介紹到這了,更多相關(guān)git submodule使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • git中submodule子模塊的添加、使用和刪除的示例代碼
  • Git Submodule使用完整教程(小結(jié))

標簽:商丘 鶴崗 鎮(zhèn)江 株洲 臺州 平頂山 哈密 綿陽

巨人網(wǎng)絡(luò)通訊聲明:本文標題《詳解git submodule使用以及注意事項》,本文關(guān)鍵詞  詳解,git,submodule,使用,以及,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解git submodule使用以及注意事項》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解git submodule使用以及注意事項的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    91尤物视频在线观看| 亚洲综合另类小说| 亚洲色图19p| 成人a级免费电影| 国产精品国产三级国产aⅴ中文 | 亚洲欧美另类久久久精品2019| 高清不卡在线观看| 亚洲高清在线视频| 久久免费看少妇高潮| 成人av动漫网站| 久久精品99久久久| 国产精品卡一卡二卡三| 欧美一区午夜精品| 成人美女视频在线观看| 亚洲成a人在线观看| 精品国产免费一区二区三区香蕉| 日本一区二区三区四区在线视频 | 精品毛片乱码1区2区3区| 成人动漫精品一区二区| 美女脱光内衣内裤视频久久影院| 欧美高清在线一区二区| 欧美一级日韩不卡播放免费| www.日韩av| 成人h精品动漫一区二区三区| 日韩激情av在线| 天堂成人免费av电影一区| 国产女人水真多18毛片18精品视频| 欧美裸体一区二区三区| 97久久超碰精品国产| 国产福利91精品一区| 日本va欧美va精品发布| 青青草97国产精品免费观看无弹窗版| 亚洲最大成人综合| 亚洲视频每日更新| 亚洲永久免费av| 一区二区三区中文字幕精品精品| 国产精品久久久久影院色老大| 26uuu欧美| 亚洲日穴在线视频| 蜜桃免费网站一区二区三区| 美女高潮久久久| 国产在线精品视频| 91蝌蚪porny| 精品国产伦一区二区三区免费| 国产亚洲精品bt天堂精选| 一区二区三区免费看视频| 日本一不卡视频| av在线不卡电影| 日韩午夜激情av| 国产日产欧美一区| 免费在线视频一区| 91理论电影在线观看| 91精品国产综合久久久久久| 亚洲欧洲精品一区二区精品久久久| 日韩成人精品在线观看| 欧美绝品在线观看成人午夜影视| av在线一区二区三区| 成人午夜免费视频| 高清不卡在线观看| 欧美一级二级三级乱码| 亚洲精品欧美综合四区| 久久成人麻豆午夜电影| 欧美午夜精品一区二区蜜桃| 中文成人综合网| 不卡av免费在线观看| 亚洲国产精品久久人人爱| av高清不卡在线| 亚洲成在人线在线播放| 色94色欧美sute亚洲线路一ni| 欧美经典一区二区| 亚洲精品视频在线| 国产999精品久久| 国产精品天天看| 狠狠色丁香久久婷婷综合_中 | 一二三四区精品视频| 久久女同精品一区二区| 国内外精品视频| 亚洲国产欧美在线人成| 毛片av中文字幕一区二区| 91精品国产综合久久久蜜臀粉嫩 | 99久久精品免费| 国产精品免费视频网站| 欧美曰成人黄网| 国产久卡久卡久卡久卡视频精品| 中文字幕一区二区日韩精品绯色| 精品日韩欧美在线| 欧美亚洲高清一区二区三区不卡| 国产精品色婷婷| 91农村精品一区二区在线| 五月天激情综合网| 久久久久久久av麻豆果冻| 欧美视频第二页| 成人激情av网| 国产精品456露脸| 午夜视频在线观看一区二区三区 | 欧美亚洲国产一区在线观看网站| 免费成人在线观看视频| 亚洲欧美日韩一区二区三区在线观看| 欧美成人精品高清在线播放| 91精品国产一区二区| 欧美视频一区二区在线观看| 99久久精品国产精品久久| 国产成人免费在线观看不卡| 国产在线精品一区二区| 久久99九九99精品| 国产精品99久久久久| 国产一区二区伦理片| 国产.欧美.日韩| av网站一区二区三区| 91色porny蝌蚪| 在线不卡免费欧美| 精品国产乱码久久久久久夜甘婷婷 | 成人美女在线观看| 99v久久综合狠狠综合久久| 99视频精品全部免费在线| 在线观看视频91| 久久综合久久鬼色中文字| 久久久久久一二三区| 综合网在线视频| 免费看日韩精品| 成人免费av网站| 欧美亚洲一区三区| 337p日本欧洲亚洲大胆色噜噜| 国产精品久久午夜夜伦鲁鲁| 亚洲国产综合人成综合网站| 成人性生交大片免费看中文| 欧美日韩在线免费视频| 久久香蕉国产线看观看99| 亚洲精品美国一| 成人精品小蝌蚪| 精品国产露脸精彩对白| 五月天久久比比资源色| 91免费在线视频观看| 国产女人aaa级久久久级| 国产在线国偷精品免费看| 51精品秘密在线观看| 亚洲成av人影院在线观看网| 欧美亚洲另类激情小说| 亚洲视频在线一区二区| 北岛玲一区二区三区四区| 久久蜜桃av一区二区天堂| 老司机午夜精品| 久久这里都是精品| 成人精品视频一区| 国产精品传媒入口麻豆| 成人avav在线| 亚洲国产视频网站| 91精品国产一区二区三区香蕉| 亚洲国产综合色| 精品视频资源站| 久久精品国产亚洲一区二区三区| 欧美一级黄色片| 国产精品66部| 亚洲日本一区二区| 日本久久精品电影| 久久99深爱久久99精品| 国产女主播一区| 欧美日韩免费观看一区三区| 久久99精品久久久久久国产越南| 久久男人中文字幕资源站| 成人国产免费视频| 天天综合日日夜夜精品| 久久久国产综合精品女国产盗摄| av电影天堂一区二区在线观看| 亚洲图片欧美一区| 欧美激情在线看| 日韩精品一区二区三区四区| www.一区二区| 国产精品亚洲综合一区在线观看| 亚洲五月六月丁香激情| 国产精品毛片无遮挡高清| 日韩一二三四区| 欧美r级在线观看| 日韩欧美综合一区| 538prom精品视频线放| 欧美日韩日日夜夜| 正在播放一区二区| 91国偷自产一区二区三区观看 | 亚洲一区二区四区蜜桃| 久久久久久久久久看片| 欧美一区二区人人喊爽| 欧美日韩精品二区第二页| 日本乱人伦一区| 欧美日韩www| 欧美一级二级三级蜜桃| 日韩精品一区二区三区视频 | 欧美日韩中文字幕一区二区| 色94色欧美sute亚洲线路二| 91亚洲永久精品| 在线视频你懂得一区| 欧美三级日本三级少妇99| 欧美日韩一级大片网址| 制服丝袜一区二区三区| 欧美成人女星排名| 久久精品一区二区三区不卡| 国产精品毛片大码女人| 亚洲一二三区在线观看| 久久99国产精品麻豆| 99久久99久久久精品齐齐| 在线免费一区三区|