準(zhǔn)備工作
- 先創(chuàng)建一個文件夾gitShare,當(dāng)然你也可以用公司的服務(wù)器,或者oschina,github . 我這里圖方便 使用本地文件夾的方式來管理git庫。
- 初始化兩個以上的庫(例如 libA libB .... ) , 這個libAt將作為主工程
- 在創(chuàng)建一個gitManager(模擬使用者),創(chuàng)建 pm文件夾(模擬管理者)
以上工作可以參考下邊的命令:
cd /Users/zhangkun/Desktop
mkdir gitShare
cd gitShare
mkdir libA
mkdir libB
cd libA
git init --bare
cd ../
cd libB
git init --bare
cd /Users/zhangkun/Desktop
mkdir gitManager
cd gitManager
mkdir pm
cd pm
要開始了
-1 先將庫中的代碼clone下來
git clone /Users/zhangkun/Desktop/gitShare/libA
#發(fā)現(xiàn)libA文件夾中有了.git 文件夾 說明已經(jīng)clone成功,然后在該目錄下創(chuàng)一個工程,還有 記得要添加ignore文件
不知道的同學(xué), 點(diǎn)這里,copy oc的忽略文件就可以了。
# 粘貼
vim .gitignore
git status
git commit -m "添加ignore文件,初始化工程"
git push
用上邊的步驟把之前gitShare中創(chuàng)建的那幾個庫 都初始化一下。
初始化工作做完了,下面重點(diǎn)來了,初始化
#現(xiàn)在切換到libA的跟目錄
cd /Users/zhangkun/Desktop /gitManager/pm
#使用下面的命令
#git submodule add 子模塊的地址 要添加的地址
git submodule add /Users/zhangkun/Desktop /gitShare/libB lib/libB
#這條命令執(zhí)行完成之后, 使用 ls -af,查看當(dāng)前subfile,會發(fā)現(xiàn)多了一個.gitmodules的東西。
#使用 cat 查看一下
cat .gitmodules
#其實(shí)這時候,已經(jīng)將libB作為子模塊添加進(jìn)來了。
提交
先push子模塊,然后在push主項(xiàng)目
cd lib/libB
git status
git commit
git push
cd ../../
git status
git commit
git push
更新 維護(hù)
現(xiàn)在,創(chuàng)建一個張三的文件夾 ,測試一下我們剛才,搭建好的子模塊
cd /Users/zhangkun/Desktop /gitManager
mkdir em
cd em
mkdir zhangsan
cd shangsan
git clone /Users/zhangkun/Desktop/gitShare/libA
#此時你會發(fā)現(xiàn) ,之前關(guān)聯(lián)號的子模塊 并沒有下載下來,使用
git submodule init
git submodule update
# ok 剛才配置號的庫已經(jīng)下載下來了。
cd /Users/zhangkun/Desktop /gitManager/pm
mkdir 李四
cd 李四
git clone /Users/zhangkun/Desktop/gitShare/libA
git submodule init
git submodule update
cd lib/libA
vim view.m
git checkout master
git add .
git commit
git push
cd ..
cd ..
# 查看一下子模塊的狀態(tài)
git submodule status
#更新主工程到遠(yuǎn)端
git add .
git commit
git push
# 此時張三還有原來的代碼
cd 張三的目錄
執(zhí)行
git pull
git submodule init
git submodule update
# 完成更新