スーパープロジェクトでサブモジュールを誤ってマージした状況があります。私は勿論、今、すべてのサブモジュールからのメッセージをコミットは、スーパープロジェクトに統合されて.gitmodules偶発的なマージからコミットを取り除く
git pull submodule_dir/submodule_file
の場所すなわちスーパープロジェクトから以下のコマンドを実行しました。私は手動でフォルダ内にあるので、ファイルを手動で削除できますが、すべてのコミットを削除するには(合計で約9個です)、識別することもできます。問題は、コミットが広がっているため、リベースが機能しないことです。例えばHEAD^9へのリベースは、スーパープロジェクトに実際に属するコミットのいくつかも削除します。
git reset
,git rebase
が効きません。そうでなければ、私は他のコミットを緩めるでしょう。
git reset --hard origin/master
が最も適切な賭けですが、既にコミットしていたローカル変更が破棄されます。
解決策は何ですか?私はチェリーピックを一度も使用していませんが、もし私がそれをしなければならないかどうかはわかりません。私は実験の前に尋ねて物事を悪化させたかったのです。このようなものと、すべての犯人のコミットを削除する。
commit latest: this consists of all my local changes and they are precious.
commit
commit
culprit commit
commit
commit
culprit commit
commit
commit
culprit commit
commit
commit
commit
commit
[私はサブモジュールを削除するにはどうすればよい?](https://stackoverflow.com/questions/1260748/how-do-i-remove-a-submodule) –
@TimBiegeleisenの可能性の重複私はあなたが問題を誤解していると思います。サブモジュールとは関係ありません – infoclogged
マージコミットをリベースすることはできませんが、マージコミットの1つの親で以前のコミットにリベースすることは可能です。 –