[解決済み] Gitサブモジュールを追加する際に、ブランチ/タグを指定するにはどうすればよいですか?
質問
どのように
git submodule add -b
はどのように機能するのでしょうか?
特定のブランチを持つサブモジュールを追加した後、新しいクローンリポジトリ(
git submodule update --init
) は、ブランチそのものではなく、特定のコミットになります (
git status
を表示します("Not currently on any branch")。
に関する情報は見当たりません。
.gitmodules
または
.git/config
サブモジュールのブランチや特定のコミットについて、Git はどのようにそれを判断するのでしょうか?
また、ブランチの代わりにタグを指定することは可能でしょうか?
バージョン1.6.5.2を使っています。
解決方法を教えてください。
注:Git 1.8.2 では、ブランチを追跡する機能が追加されました。以下のいくつかの回答をご覧ください。
慣れないうちは少し戸惑いますが、サブモジュールはブランチ上にあるわけではありません。 あなたが言うように、サブモジュールのリポジトリの特定のコミットへのポインタに過ぎません。
つまり、誰かがあなたのリポジトリをチェックアウトしたりコードをプルしたりしたときに git submodule update を実行すると、そのサブモジュールはその特定のコミットにチェックアウトされることになります。
これは、頻繁に変更されないサブモジュールには最適です。なぜなら、プロジェクトに参加している全員が同じコミットでそのサブモジュールを使用できるからです。
サブモジュールを特定のタグに移動させたい場合。
cd submodule_directory
git checkout v1.0
cd ..
git add submodule_directory
git commit -m "moved submodule to v1.0"
git push
そして、submodule_directory をそのタグに変更させたい別の開発者は、次のようにします。
git pull
git submodule update --init
git pull
は、そのサブモジュールディレクトリが指すコミットを変更します。
git submodule update
は、実際に新しいコードをマージします。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] git rebase の取り消し
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】サブモジュールを削除する方法は?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】GitHubで空のブランチを作成する
-
[解決済み] 現在の支店にはトラッキング情報がありません
-
[解決済み] git ls-remote と git ls-remote origin の違い。
-
[解決済み] "ダウンストリーム "と "アップストリーム "の定義
-
[解決済み] Git リポジトリがデタッチド HEAD 状態になったのはなぜですか?
-
[解決済み】サブモジュールを削除する方法は?
-
[解決済み] [Solved] Git Submodule HEADがmasterから切り離されるのはなぜですか?
-
[解決済み] SVN:externalsはGitで同等?
-
[解決済み] git submodule' を使ってサブモジュールの特定のバージョンをチェックアウトするにはどうしたらいいですか?
-
[解決済み] git サブモジュールトラッキング latest