Git サブモジュールへの変更を元に戻すにはどうすればいいですか? 質問する

Git サブモジュールへの変更を元に戻すにはどうすればいいですか? 質問する

リポジトリに追加した Git サブモジュール (RestKit) があります。

誤っていくつかのファイルを変更してしまったので、ソースバージョンに戻したいのですが、そのためには、

Mac:app-ios user$ git submodule update RestKit

しかし、ここでわかるように、これはまだ「変更されたコンテンツ」であるため機能しませんでした。

Mac:app-ios user$ git status
...
#   modified:   RestKit (modified content)

Mac:app-ios user$ git submodule update -f RestKit 

ローカルで変更されたファイルは元に戻りません。
そのサブモジュールの内容をリセットするにはどうすればいいでしょうか?

ベストアンサー1

これまでのすべての回答よりも確実な方法:

git submodule deinit -f .
git submodule update --init

最初のコマンドはすべてのサブモジュールを完全に「アンバインド」し、2 番目のコマンドはそれらのサブモジュールを新たにチェックアウトします。
他の方法よりも時間がかかりますが、サブモジュールの状態に関係なく機能します。

サブモジュールに独自のサブモジュールがある場合は、2 番目のコマンドの代わりに、次を試してください。

git submodule update --init --recursive --checkout

--recursive明らかですが、--checkoutSkipping submodule ...」を妨げます(参照詳細をスキップ)。

おすすめ記事