20170728

問題描述

  • 存在兩個(gè)由github管理的倉庫,但是現(xiàn)在需要一個(gè)總文件夾user-demo作為這兩個(gè)倉庫的父文件夾
  • 執(zhí)行將兩個(gè)由git管理的倉庫直接移入了user-demo中,然后進(jìn)行g(shù)it init 并且push到遠(yuǎn)端倉庫。
  • 然后重新從主文件夾的倉庫把項(xiàng)目clone下來發(fā)現(xiàn),兩個(gè)子文件沒有內(nèi)容
    ps:目錄結(jié)構(gòu)如下圖

解決思路

  • Q1:根據(jù)當(dāng)前需求,可否使用git submodule?
  • A1:查詢git submodule的使用條件

submodule允許你將一個(gè) Git 倉庫作為另一個(gè) Git 倉庫的子目錄。 它能讓你將另一個(gè)倉庫克隆到自己的項(xiàng)目中,同時(shí)還保持提交的獨(dú)立。

剛好符合所需條件


  • Q2:如何做到讓兩個(gè)repo作為submodule?
  • A2:直接使用git submodule add +倉庫地址,那么現(xiàn)在在主倉庫下生成的這兩個(gè)倉庫就是submodule。***此時(shí)加入的兩個(gè)submodule是直接從remote拉下來的,因此使用git submodule add +倉庫地址之前先把本地的提交交到remote。此時(shí)你的父倉庫中拿到的就是直接從remote clone回來的子庫了。主子庫結(jié)構(gòu)建立成功

  • Q3:構(gòu)建成功后,發(fā)現(xiàn)再次從主庫中clone的項(xiàng)目會出現(xiàn)子文件雖然存在,但是沒有內(nèi)容?
  • A3:根據(jù)submodule介紹,此時(shí)clone下來要進(jìn)行git submodule init追蹤submodule倉庫,然后使用git submodule update將每個(gè)submodule的commit指向離主庫commit最近的那一次。
    ----->所以對于jenkins把代碼clone下來之后,必須在jenkinsfile的build stage中添加
stage('build'){
   steps{
    checkout  scm
    git submodule init
    git submodule update
  }
}  //代碼內(nèi)容下一篇講解

  • Q4:那么對于代碼更新有要求嘛?
  • A4:依舊按照子庫每次都要push,子庫push完主庫再push即可。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 本片內(nèi)容轉(zhuǎn)自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃兒閱讀 4,956評論 2 88
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,721評論 9 163
  • 分布式版本管理工具 git屬于分布式 svn集中式 git安裝 git初始化一個(gè)倉庫 其實(shí)就是創(chuàng)建了一個(gè).git隱...
    SnowDragonYY閱讀 1,515評論 0 0
  • 《人在江湖》系列——研發(fā)經(jīng)理技能,hc預(yù)算兩步定 2017還有幾天就來了,hc預(yù)算是q4必做之事。做hc,總結(jié)了下...
    程序媛大麗閱讀 2,875評論 0 1
  • 荒野里有一架鋼琴 我的目光還來不及溫柔起來 便開始擔(dān)心它能否代替古斯里 喚回高加索上的游魂 荒野里有一架鋼琴 黑鍵...
    一張機(jī)閱讀 140評論 2 3