[解決済み] Git Submodule のポインタを、そのリポジトリに保存されているコミットに戻すには?
質問
私のメイン git リポジトリに git サブモジュールがあります。私が理解しているように、メイン リポジトリは、サブモジュールの特定のコミットを指す SHA 値を (どこかに...) 保存し、それが "linked to" されます。
私は自分のサブモジュールに入り、次のように入力しました。
git checkout some_other_branch
. どのコミットから来たのか全くわかりません。
メインレポとサブモジュールが再び同期するように、そのポインタを元に戻したいと思います。
私の最初の (おそらく素朴な) 直感は、次のように言いました。
git reset --hard
- という、他のすべてのものに対して機能するように思えるものでした。驚いたことに、それはこのシナリオでは機能しませんでした。
というわけで、私は以下のように入力することができることを理解しました。
git diff
と入力し、サブモジュールのポインタが持っていた SHA ID を記録し、その後サブモジュールに移動して
git checkout [SHA ID]
... でも、きっともっと簡単な方法があるはずでしょう?
私はまだgitサブモジュールについて学んでいるので、私が知らない概念のための言葉があれば、遠慮なく私の用語を修正してください。
どのように解決するのですか?
サブモジュールを更新して、親リポジトリが信じるものと同期させたいと思います。 これが update コマンドの目的です。
サブモジュールの man ページから。
登録されているサブモジュールを更新する、つまり見つからないサブモジュールをクローンして 登録されているサブモジュールを更新します。 レポジトリのインデックスに指定されたコミットをチェックアウトします。これにより、以下の場合を除き、サブモジュールのHEADは切り離されます。 --rebaseかmergeが指定されているか、submodule.$name.updateのキーが がrebaseまたはmergeに設定されていない限り、サブモジュールのHEADを切り離します。
これを実行すれば、すべてがうまくいくはずです。
git submodule update --init
を追加することができます。
--recursive
フラグを追加して、すべてのサブモジュールを再帰的に検索することもできます。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git リポジトリでのマージの衝突を解決するには?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] サブモジュールを含む "git clone "の方法は?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 現在のブランチのトラッキング情報がありません。
-
[解決済み] git pull リモートブランチがリモートの参照先を見つけることができない
-
[解決済み】git rev-parseは何をするのですか?
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
[解決済み】Git Extensions。Win32 エラー 487: cygwinのヒープ用に領域を確保できなかった、Win32エラー0
-
gitコミット発生 ! [リモート拒否] master -> master (pre-receive hook declined) 解決策
-
[解決済み] LFはgitでCRLFに置き換えられます - それは何ですか、そしてそれは重要ですか?[重複]。
-
[解決済み] 複数のコミットをチェリーピックする方法
-
[解決済み] 短いGitバージョンのハッシュを取得する
-
[解決済み] git ls-remote と git ls-remote origin の違い。