0

了解しました。(学校のプロジェクトで-慌てる必要はありません).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コミットを別のコミットに置き換えるためのより簡単でクリーンな方法が必要です。

それはすべてクローンから始まります...

4

2 に答える 2

1

pushステートメントで--forceフラグを使用できますが、他の人が同じリポジトリを使用している場合は危険です。それ以外の場合は、リモートヘッドに更新して戻し、Gitリバートを使用することをお勧めします。

于 2012-04-29T12:48:28.143 に答える
1

「マスター」ブランチを巻き戻すことができるようにリモートリポジトリ管理者を取得する必要があることは別として、http://help.github.com/remove-sensitive-data/、特に「スペースのクリーンアップと再利用」セクションを参照してください。

多くの場合、新しいリモコンからやり直して、あなたのような場合は、リモート管理者に古いリモコンを完全に削除させるのが最も簡単です。:-)

于 2012-04-29T22:34:40.947 に答える