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>
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。