[解決済み] git サブモジュールトラッキング latest
質問
私たちの(巨大な)プロジェクトをgitに移行しており、サブモジュールの使用について考えています。私たちの計画は、スーパープロジェクトに3つの異なるヘッドを持つことです。
リリース、安定版、最新版
プロジェクトリーダーは、リリースブランチと安定版ブランチを扱います。彼らは必要に応じてサブモジュールを移動させます。
問題は"latest"ヘッドです。スーパープロジェクトの "latest" ヘッドが、すべてのサブモジュールのマスターブランチを(自動的に)追跡するようにしたいと思います。そしてまた、サブモジュールへのすべてのコミットの履歴を表示してくれたら最高です。
gitslaveを見ましたが、私たちが望むものとはちょっと違います。何か提案はありますか?
解決方法は?
編集(2020.12.28): GitHubのデフォルト変更
マスター
ブランチから
メイン
ブランチを2020年10月より開始しました。参照
https://github.com/github/renaming
以下の回答は、旧来の命名規則をそのまま反映しています。
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
マンページ
:
の特別な値です。
.
は、以下のように使用されます。 サブモジュール内のブランチの名前は、現在のリポジトリの現在のブランチと同じ名前であるべきです。 .
参照 commit b928922727d6691a3bdc28160f93f25712c565f6 :
<ブロッククオート
submodule add
: もし
--branch
が与えられたら、それを
.gitmodules
署名:W.トレバー・キング
を簡単に記録することができます。
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 ...
は、サブモジュールを初期化したのと同じブランチから更新を取得します。これは、通常望むことです。
オリジナルの回答(2012年2月)です。
サブモジュールは、親レポから参照される1つのコミットです。
それ自体がひとつの Git リポジトリなので、すべてのコミットの履歴にアクセスするには
git log
をそのサブモジュール内で使用します。
つまり、親がサブモジュールの指定されたブランチの最新コミットを自動的に追跡するためには、そうする必要があります。
- サブモジュール内の cd
- git fetch/pull で正しいブランチでの最新のコミットを確認します。
- 親レポに cd で戻る
- を追加し、サブモジュールの新しいコミットを記録するためにコミットします。
ギッツレーブ (すでに見ていただいた)が一番合っているような気がします。 コミット操作を含む .
サブモジュールに変更を加える場合、正しいサブモジュールブランチにチェックアウトし、変更を加えてコミットし、スーパープロジェクトに移動してコミットする (あるいは少なくともサブモジュールの新しい場所を記録する) 必要があり、少し煩わしいです。
その他の代替案としては 詳細はこちら .
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】サブモジュールを削除する方法は?
-
[解決済み】ローカルの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 の操作でパスワード認証が利用できない
-
[解決済み] リモートの <ブランチ名> とマージするように設定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] 無効なVCSルートマッピング - 私のプロジェクトで3つのエラーが発生しました。
-
[解決済み] すべてのgitサブモジュールの最新版を簡単にプルする方法
-
[解決済み] Gitサブモジュールを追加する際に、ブランチ/タグを指定するにはどうすればよいですか?
-
[解決済み】gitサブモジュールの変更を「コミット」する方法は?重複
-
[解決済み】gitのサブモジュールとサブツリーの違いについて
-
[解決済み】Gitサブモジュールのアップデート
-
[解決済み] SVN:externalsはGitで同等?
-
[解決済み] 浅いgitサブモジュールの作り方は?