2017-05-18 9 views
0

私は最近、既存のコードを不必要に変更し、誤ってコントローラを削除しました(レールの使用)。私はちょうど小さな変更を加えなければならなかったので、この時点で私は私の支店にいました。そこで私は自分のリポジトリに変更をコミットしました。gitでいくつかのコミットをリセットする

これを元に戻すには、git reset -hard HEADを使用して古いコードに戻します。私が今したいことは、このバージョンよりも先に2つのコミットを削除して、移動したばかりのヘッドでのみ作業したいと思っています。これについてどうすればいいですか?

+1

の可能性のある重複[Gitリポジトリ内のブランチからのコミットを削除](http://stackoverflow.com/questions/1338728/delete-commits-from-a-branch-in-git) – 1615903

答えて

1

HEADのコミットをpush forceで削除できます。

git push origin HEAD -f 
+1

これは、うまくいきました、ありがとうございます。 :) – Solias

+0

うれしいことです:) – Zooly

+1

'-f'(またはそれと同等の' --force')ではなく、 '--force-with-lease'を使用して、誰かのコミットを誤って上書きしないようにすることをお勧めしますあなたが最後に取得してからプッシュした可能性があります。 –

0

これを実行する方法は多数あります。私にとっては、最も良い方法は以下の通りです:

git rebase -i HEAD~3 

リベース先リストファイルが開きます。削除するコミットを削除します。次に、ファイルを保存して閉じます。

+0

はこれも正常に動作します。私はちょうどそれを考え出した。私はこれを、バージョン間でパッチを削除したいというような状況に使用したいと思います。しかし、HEADへの押し付け力は、私が必要としていることをうまくやったようでした。ありがとうございました:) – Solias