GIT Submoduleの使用
2328 ワード
1つのプロジェクトに他のサポートプロジェクトのソースコードを含める必要がある場合に使用される機能は、2つのプロジェクトが独立しており、プライマリプロジェクトが別のサポートプロジェクトを使用できるようにします.
サブプロジェクトを追加すると表示されます.gitmodulesのファイルです.mapping between the project's URL and the local subdirectoryを記録するプロファイルです.且.gitmodule projectsはgitバージョン制御で、他のプロジェクトに参加している人がsubmodule projectsの状況を知ることができます.
取得するアイテムにsubmodulesが含まれている場合、pull main projectのときにsubmodulesのソースコードが同時に取得されないため、ローカルを実行する必要がある.gitmodules初期化コマンドは、リモートsubmoduleソースコードを再同期します.clone main projectにsubmodulesをすべて含める場合は、次のコマンドを使用します.
操作submodulesソース:submoduleのdirecotryに入り、次のコマンドを実行します.
.gitmoduleの内容は大体次の通りです
「foreach」キーワードで複数のsubmodulesを同時に管理するには、次のようにします.
submodulesのコマンドは長く、効率を向上させるためにaliasを作成し、記録することができます.git/configパスの下.次のようになります.
これにより、次のコマンドを使用して効率を向上させることができます.
git submodule add #
サブプロジェクトを追加すると表示されます.gitmodulesのファイルです.mapping between the project's URL and the local subdirectoryを記録するプロファイルです.且.gitmodule projectsはgitバージョン制御で、他のプロジェクトに参加している人がsubmodule projectsの状況を知ることができます.
git submodule init # .gitmodules
git submodule update # submodule
取得するアイテムにsubmodulesが含まれている場合、pull main projectのときにsubmodulesのソースコードが同時に取得されないため、ローカルを実行する必要がある.gitmodules初期化コマンドは、リモートsubmoduleソースコードを再同期します.clone main projectにsubmodulesをすべて含める場合は、次のコマンドを使用します.
git clone --recurse-submodules #
操作submodulesソース:submoduleのdirecotryに入り、次のコマンドを実行します.
git fetch # submodule
git merge origin/ # submodule
git pull # submodule
git checkout # submodule branch
git commit -am "change_summary" # submodule commit
# or
# submodule , branch master, branch, .gitmodule
git submodule update --remote
# submodule , .gitmodule , master
git submodule update --remote
# submodule commits push
git push --recurse-submodules=check
# submodule main project
git push --recurse-submodules=on-demand
.gitmoduleの内容は大体次の通りです
[submodule ]
path =
url =
branch =
「foreach」キーワードで複数のsubmodulesを同時に管理するには、次のようにします.
# stash submodules
git submodule foreach 'git stash'
# submodules
git submodule foreach 'git checkout -b '
submodulesのコマンドは長く、効率を向上させるためにaliasを作成し、記録することができます.git/configパスの下.次のようになります.
git config alias.spush 'push --recurse-submodules=on-demand'
git config alias.supdate 'submodule update --remote --merge'
これにより、次のコマンドを使用して効率を向上させることができます.
git supdate
git spush