リポジトリに追加した 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
明らかですが、--checkout
「Skipping submodule ...
」を妨げます(参照詳細をスキップ)。