Git 子模塊應用簡介

iTesting2019-04-14 03:23:41

iTesting,愛測試,愛分享


大家做自動化的時候, 常常碰見這樣的情況:你自己的項目,UI自動化需要一些前置條件,而這些前置條件正好是你API自動化項目已經完成了的功能,或者説你的項目有一些依賴,而這些依賴正好屬於公用項目的一部分。把這些依賴的共有部分copy到你的項目雖然可用,但萬一這些被依賴的功能有更新的話,你就只能跟着修改了,非常不方便。

Git 通過子模塊處理這個問題。子模塊允許你將一個 Git 倉庫當作另外一個Git倉庫的子目錄。這允許你克隆另外一個倉庫到你的項目中並且保持你的提交相對獨立。

添加子模塊:

1. 直接添加子模塊

#切換到本地項目裏想添加submodule的目錄下, 執行git submodule add 

命令執行完成,會在當前工程根路徑下生成一個名為".gitmodules"的文件,其中記錄了子模塊的信息。可用如下命令查看提交的新模塊:

git diff --cached --submodule

然後提交就完成了子模塊的添加:

git commit -m "add submodule iTesting"

提交改動到遠程分支:

git push origin master

2. 克隆一個包含子模塊的項目:

#直接clone一個包含有submodule的項目#遞歸的方式克隆整個項目git clone  --recursive 

當clone項目時有子模塊存在時,第一次是不會順便clone出子模塊的,需要執行如下命令才能發現子模塊被checkout出來了:

#初始化本地配置文件:git submodule init #checkout出子模塊的文件git submodule update 

這個時候的子模塊文件都已經被checkout出來,你可以當成本地文件一樣使用了。不過還有更簡單一點的方式, 如果給 git clone 命令傳遞 --recursive 選項,它就會自動初始化並更新倉庫中的每一個子模塊

git clone --recurse-submodules 

更新子模塊

假如子模塊更新了,我們如何拿到子模塊的最新代碼?

#可以進入到子模塊文件目錄中運行命令:git fetchgit merge#這樣會拿到最新代碼。#還有一種方式,直接在根目錄下運行:git submodule update --remote

如果你想自動更新,可以

#根目錄下運行git submodule update --remote repositoryName


修改子模塊

#首先需要確認有對Submodule的commit權限#然後進入到submodule目錄裏面正常修改提交即可

刪除子模塊

#刪除子模塊目錄及源碼rm -rf 子模塊目錄 #刪除項目目錄下.git文件中子模塊相關條目,需要手工刪除cd .gitvim config (刪除submodule信息)cd modulesrm -rf * (要看清楚,只刪除跟submodule有關的)git rm --cached 子模塊名稱




 -   -  時人莫小池中水, 淺處不妨有卧龍  -  -

作者:

Kevin Cai, 江湖人稱蔡老師。

兩性情感專家,非著名測試開發。

技術路線的堅定支持者,始終相信Nobody can be somebody。      

                     

· 猜你喜歡的文章 ·

一小時學會接口測試

逢考必進,逢面必過 -- 面試必殺技


https://hk.wxwenku.com/d/200085691