了解しました。(学校のプロジェクトで-慌てる必要はありません).classファイルと.settings/ディレクトリを備えた完全なEclipseワークスペースをコミットしてもらいました。私がしたことは、リポジトリのクローンを作成し、.gitignoreファイルを作成して発行することでした:
$ git reset --soft HEAD^
$ ... unstaged all files and added .gitignore and all files that it filtered in ...
それから私は試しました:
$ git commit -c d1cf2d8173234b444c601d5e294a5cf6d790fa2c
ここで、SHAはオンラインコミットのSHAです。それは私にプッシュさせません:
https://USERNAME@git.assembla.com/PROJECT.gitに プッシュhttps://USERNAME@git.assembla.com/PROJECT.gitに ![拒否]
master->master(non-fast-forward)error:failed to push some refs to'https://USERNAME@git.assembla.com/PROJECT.git'履歴が失われないようにするため、非高速-転送の更新が拒否されました再度プッシュする前に、リモートの変更(「gitpull」など)をマージします。詳細については、「gitpush--help」の「早送りに関する注意」セクションを参照してください。
私の質問は、代わりに何をすべきかということです。
したがって、このシナリオでコミットを削除するには、どの程度正確に行う必要がありますか。実行すべきではないことを警告しないでください。この場合、履歴を編集することは非常に受け入れられ、推奨され、必要です(オンラインリポジトリのスペースを再利用したい)。また、プッシュを強制する方法についてはあまり心配していません。リモートのHEADコミットを別のコミットに置き換えるためのより簡単でクリーンな方法が必要です。
それはすべてクローンから始まります...