Affected files: .obsidian/workspace 03. 資料收集/HTTP Server/Nginx.md 03. 資料收集/Hobby/RC.md 03. 資料收集/Hobby/模型/Traxxas Sledge.md 03. 資料收集/Hobby/模型/舊化作例.md 03. 資料收集/Hobby/軍武/虎式.md 03. 資料收集/Programming/COM/20210726 - COM Interface.md 03. 資料收集/Programming/DB/MySQL.md 03. 資料收集/Programming/DB/sqlite.md 03. 資料收集/Programming/Design Pattern.md 03. 資料收集/Programming/FFMPEG/00. Introduction.md 03. 資料收集/Programming/FFMPEG/01. Setup.md 03. 資料收集/Programming/FFMpeg.md 03. 資料收集/Programming/Flask.md 03. 資料收集/Programming/Media Foundation/20210604 - Windows media foundation.md 03. 資料收集/Programming/OpenCV.md 03. 資料收集/Programming/OpenGL.md 03. 資料收集/Programming/Python/argparse.ArgumentParser.md 03. 資料收集/Programming/Python/decorator.md 03. 資料收集/Programming/Python/logging.md 03. 資料收集/Programming/Python/opencv.md 03. 資料收集/Programming/Python/subprocess.md 03. 資料收集/Programming/Python/threading.md 03. 資料收集/Programming/Python/tkinter.md 03. 資料收集/Programming/Python/檢測工具.md 03. 資料收集/Programming/QT/Dropdown button.md 03. 資料收集/Programming/QT/QVariant.md 03. 資料收集/Programming/QT/Qt.md 03. 資料收集/Programming/Qt.md 03. 資料收集/Programming/UML.md 03. 資料收集/Programming/演算法.md 03. 資料收集/架站/03. Trojan.md 03. 資料收集/架站/Gitea.md 03. 資料收集/架站/HTTP Server/Apache.md 03. 資料收集/架站/HTTP Server/Nginx/Reverse Proxy(Layer4).md 03. 資料收集/架站/Pelican blog.md 03. 資料收集/架站/Proxmox VE.md 03. 資料收集/架站/SWAG Reverse proxy.md 03. 資料收集/架站/Storj.md 03. 資料收集/架站/Trojan.md 03. 資料收集/科技/802.11.md 03. 資料收集/科技/HDR Sensor.md 03. 資料收集/科技/量子電腦.md 03. 資料收集/科技/鋰電池.md 03. 資料收集/軟體工具/IPFS.md 03. 資料收集/軟體工具/MkDocs.md 03. 資料收集/軟體工具/Obsidian.md 03. 資料收集/軟體工具/docker.md 03. 資料收集/軟體工具/git/apply.md 03. 資料收集/軟體工具/git/submodule.md
27 lines
867 B
Markdown
27 lines
867 B
Markdown
## 建立 Git Submodule
|
||
```
|
||
git submodule add <repository> [<local_path>]
|
||
```
|
||
新增之後,用 git status 會發現多了兩個東西需要 commit:
|
||
![[20220608152709_git_submodule.png|450]]
|
||
|
||
第一個檔案 .gitmodules,裡面紀錄 submodule 的對應關係,內容大概像這樣:
|
||
```
|
||
[submodule "RobotRunQA"]
|
||
path = RobotRunQA
|
||
url = git@github.com-logi:JuiwenHsu/RobotRunQA.git
|
||
```
|
||
|
||
接下來剩3個步驟:
|
||
1. 提交 `.gitmodule`:`git add .gitmodule ; git push origin master`
|
||
2. 跟git說我們有新增一個submodule:`git submodule init`
|
||
3. 把submodule pull下來:`git submodule update`
|
||
|
||
## Clone repository and submodule
|
||
當clone一個有submodule的repo的時候,我們還需要 `git submodule init` 跟 `git submodule update` ,例如:
|
||
```
|
||
git clone https://xxx/xxx.git
|
||
cd xxx
|
||
git submodule init
|
||
git submodule update
|
||
``` |