Viki

Viki 写东西的地方

努力上进且优秀
github
email
x
steam
bilibili
douban

Git 子模組備忘錄

這是一份給自己的、簡單而又基礎的 Git Submodules 備忘錄。

因為發現自己一到用的時候就忘了,結果就是一遍又一遍問 GPT...

克隆帶有 Git Submodules 的倉庫#

# 方法一,一步到位
git clone --recurse-submodules <主倉庫URL>

# 方法二,常規方式,較繁瑣
git clone <主倉庫URL> <主倉庫目錄?>
cd <主倉庫目錄>
git submodule update --init --recursive

添加 Submodules 到當前倉庫#

git submodule add <子模塊倉庫URL> [路徑]

更新現有的 Submodules#

根據記錄的子模塊的 Commit ID 來更新子模塊

  • 當子模塊倉庫有了更新
  • 當主項目引用的子模塊的提交點改變
git submodule update --init --recursive

更新現有 Submodules 到最新提交#

# 進入 Submodules 並拉取最新更改
cd path/to/my-submodule 
git pull

# 在主項目的根路徑下,保存提交
git add path/to/my-submodule
git commit -m "chore: update submodule"

更新現有 Submodules 的倉庫地址#

# 編輯 .gitmodules 文件,修改 url 欄位

# 將 .gitmodules 中的變更同步到 .git/config
git submodule sync

# 更新 Submodules
git submodule update --init --recursive

# 保存並提交
git add .gitmodules
git commit -m "chore: update submodule url"
git push

刪除現有 Submodule#

# 通過 git 刪除 Submodule 目錄
git rm -f <submodule_path>

# 編輯 `.gitmodules` 和  `.git/config` 文件
# 找到並刪除與該 Submodule 相關的那一段配置,如下

# [submodule "submodule_name"]
# path = submodule_path
# url = https://github.com/username/repo.git

# 刪除 Submodule 目錄下的 `.git` 目錄引用。
# 如果之前使用 `git rm`,此步驟應該已經自動完成。

# 提交更改
git add .
git commit -m "chore: remove submodule"

# 在 `.git/modules` 中刪除 Submodule 相關數據
rm -rf .git/modules/<submodule_path>
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。