[精讚] [會員登入]
344

git 中的 git(git 次模組)

版本控制引擎git 中的 git(git 次模組) / git inside git/ git submodule

此文完整連結 http://n.sfs.tw/10532

複製連結 git 中的 git(git 次模組) @新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2020-04-09 00:31:35 最後編修
2017-01-02 09:23:24 By 張○○
 

自動目錄

有時寫的專案中還有引入另一個GIT專案,(不管是自己的其他專案或是別人的),簡易的作法是到該目錄下clone 一個進來:

簡單的來說:為了管理自己專案中的其他專案,就得用git submodule 這個功能:

--我的專案
         L 另一個專案

另一個專案可是自己或是別人的專案

但這樣的就會遇到2個問題:

1當另一個專案有更新時,我的專案還得另外到那個目錄作update(pull)的動作來確保更新。

2 在提交到伺服器時,另一個專案不會一併提交。當別人取回時,會得到一個空目錄。

因此為了維護我的專案中的別人的專案,得使用GIT提供的次模組功能 (submodule)

 

一、在我的專案中要加入一個別人的專案

例如我要拉ThirdParty-Project這個專案到我的目錄libs/third下,可下指令

git submodule add GIT來源 目標目錄

$ git submodule add https://github.com/user/ThirdParty-Project libs/third

這裡的目錄 libs/third 不能先建,git會自己建立。建立完git 會產生一個檔案 .gitmodules,內容大概是這樣:

[submodule "libs/third"]
        path = libs/third
        url = https://github.com/user/ThirdParty-Project

此檔會自動建立

同時次模組中的檔案也會被抓回來,未來在佈建或是更新時,次模組中的內容也會一併更新

二、我們把專案寫好發佈到伺服器

$ git commit -a -m "update_memo"

就算有次模組,自己的模組發布方法也沒有改變,-m後面是註解;-a是新增新的檔案

三、別人拉回我們的專案

$ git pull origin master
(origin:視各位的reposity設定,master:視各位的分枝而不同)

會發現別人的專案這個目錄是空目錄

$ cd libs/third
$ ls
一片空,別緊張,因為我們還沒有初始化這個次模組

四、初始化並更新拉回的專案

在你git的最上層目錄執行

$ git submodule init
$ git submodule update

這樣我們取回的複本,就能夠順利另外取得第三方的專案內容了。

 

錯誤及排除

一、當建立次模組發生錯誤 'path/to/' already exists in the index[1]

這是因為你的目錄 path/to/已在git索引之中你需要將他先移除:

$ git rm -r  path/to

to本身是目錄,後面那個 '/'有加沒加沒關係。移除完重建

二、You need to run this command from the toplevel of the working tree.

進行次模組操作時,要到最上層目錄操作,也就是 .git/ 目錄存在的那層

只要到你原本下git init那層執行即可

參考資料

[1] https://codertw.com/%E4%BA%BA%E5%B7%A5%E6%99%BA%E6%85%A7/134110/


原文 2013-12-03 15:41:36

你可能感興趣的文章

[EXCEL] 直接把表格變成圖片 要把表格變成圖片不用抓圖,只要簡單的幾步

[FIREFOX] 好用的日文加拼音插件 furigana FIREFOX 替日文網頁中的漢字加上拼音的好用插件

[手機] HTC 10 evo的指紋辨識 HTC 10 evo上面的指紋辨識,原來這麼方便

鍵盤上特殊符號及按鍵的英文及中文讀法 鍵盤上特殊符號及按鍵的英文及中文要怎麼讀?

檢測頁面載入速度 利用google提供的檢測工具來測試網頁的載入速度

UTF8中文字/全形一覽 快速查詢urf-8的中文字,共計13246中文字(5401常用字+7652罕用字+日文或編號),292全形符號,27半形符號。

HP SAS硬碟leds燈號說明 HP SAS硬碟leds燈號(hp g7/g6系統適用)說明

常用1200字簡體字 為了加速正簡互換的效能,我針對常見的簡體字做了挑選,花了六個小時,整理出最常用的1200個簡體中文字及正體中文字對照

慘!桌機被綁架了?可怕的CryptoL0cker 這可不是什麼有良心的好軟體,幫你把檔案加密存放,而是把你的檔案加密,讓你不能使用,如果要使用,請付出相當於台票13000的代價解密

超強姓名音譯網站 超級強,符合我所有需求

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。請注意:留言不可帶有網址,會被濾掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[札記] 2016.7~12月札記 札記,只是札記

UTF8中文字/全形一覽 快速查詢urf-8的中文字,共計13246中文字(5401常用字+7652罕用字+日文或編號),292全形符號,27半形符號。

[CodeIgniter3] 解決無法上傳特定檔案(.sb2)的問題 上傳時出現The filetype you are attempting to upload is not allowed,要怎麼解決?

精讚的版面變化 ▓此文僅作為舊文的記錄▓ 這篇文章為了紀念改版完成而撰寫。 原本的部落格是民國97年的作品,那時還是用舊有的技術來寫,很

[Wildfly10] 發佈war檔 deploy war file onto wildfly10