2013年3月の更新
Git 1.8.2はブランチを追跡する可能性を追加しました。
" git submodule
" は、リモートブランチの先端と統合する新しいモードの学習を開始しました(スーパープロジェクトのgitlinkに記録されたコミットと統合するのではなく)。
# add submodule to track master branch
git submodule add -b master [URL to Git repo];
# update your submodule
git submodule update --remote
サブモジュールがすでに存在していて、ブランチを追跡したい場合は、「既存のサブモジュールにブランチを追跡させる方法」を参照してください。
サブモジュールの一般的な情報については、サブモジュールに関するVogellaのチュートリアルも参照してください。
注意:
git submodule add -b . [URL to Git repo];
^^^
git submodule
manページを参照してください。
の特別な値は、サブモジュールのブランチの名前が現在のリポジトリの現在のブランチと同じ名前であること.
を示すために使用されます。
コミットb928922727d6691a3bdc28160f93f25712c565f6を参照してください。
submodule add
:指定されている場合--branch
は、それを記録します.gitmodules
これにより、新しいサブモジュールを追加するときにsubmodule.<name>.branch
オプションを簡単に記録できます.gitmodules
。このパッチでは、
$ git submodule add -b <branch> <repository> [<path>]
$ git config -f .gitmodules submodule.<path>.branch <branch>
に減少する
$ git submodule add -b <branch> <repository> [<path>]
これは、将来の呼び出しが
$ git submodule update --remote ...
サブモジュールの初期化に使用したのと同じブランチから更新を取得します。これは通常、必要なものです。
サインオフ:W. Trevor King
元の回答(2012年2月):
サブモジュールは、親リポジトリによって参照される単一のコミットです。
それ自体はGitリポジトリであるため、「すべてのコミットの履歴」には、git log
そのサブモジュール内からアクセスできます。
したがって、親がサブモジュールの特定のブランチの最新のコミットを自動的に追跡するには、次のことが必要です。
- サブモジュールのcd
- git fetch / pullして、正しいブランチに最新のコミットがあることを確認します
- 親リポジトリにcdします
- サブモジュールの新しいコミットを記録するために追加してコミットします。
gitslave(あなたがすでに見たもの)は、コミット操作を含めて、最も適しているようです。
正しいサブモジュールブランチにチェックアウトし、変更を加えてコミットし、スーパープロジェクトに移動してコミットする(または少なくとも、サブモジュール)。
他の代替案はここに詳述されています。