8

重複の可能性:
github でコミットを削除するにはどうすればよいですか?

そのため、私たちのプロジェクトのチーム メンバーは、700 MB 以上のナンセンスをコミットして、git プロジェクト リポジトリにプッシュしました...彼女は 2 つの画像だけを追加していると思っていましたが、どういうわけかデスクトップの内容全体を git フォルダーにコピーしてしまいました。それをコミットします。2 枚の写真をアップロードするのに 20 分もかかったのに、なぜ彼女が変ではないと思ったのかはわかりません...

とにかく、私は今、このプロジェクトの責任者として窮地に立たされています。私が見る限り、2つの選択肢があり、どちらも好きではありません

  1. bitbucket からリポジトリを削除し、必要なファイルで再起動できます。必要なファイルの現在のバージョンのみが利用可能になるため、これにより以前の編集がすべて削除されます

  2. エラーのあるデータを削除して、変更をプッシュすることができました。必要なファイルのみがさらに管理されますが、彼女がそこに置いたすべての余分なゴミは、プロジェクトを 100 倍に膨らませる git に永遠に存在します。

まるでそれが起こらなかったかのように、実際にコミットを永久に削除する方法はありますか? より修復的な git トレーニング以外に、このしゃっくりを管理するための最良の方法は何でしょうか...

4

2 に答える 2

2

私はします

$ git checkout master~1 -b newmaster
$ git branch -D master
$ git reflog expire --expire=now --all
$ git gc --prune=now
$ git checkout -b master
$ git branch -D newmaster

gcはガベージコレクションを行う必要があります。サーバー上でこれを行うことができると思います。

于 2012-12-30T22:56:54.880 に答える
1

bitbucketで許可されているかどうかはわかりませんが、次のことができます。

git reset HEAD~
# Or the SHA of the version before the huge commit
git push --force
于 2012-12-30T22:57:47.917 に答える