2012-02-23 16 views
1

大きなファイルを削除するのに、git filter-branchを使用しようとしています。これは良い考えではありませんでした。なぜなら、履歴を書き換えて、すべてのコミットを倍増させる新しいブランチを作成するからです。すべてのプッシュ可能なコミットを削除するには?

これをやり直したいと思います。私はSmartGit(gitのグラフィックインターフェイス)で、多くのプッシュ可能なコミットを作成することがわかりました。どのように私はそれを削除し、このコミットをすべて元に戻すことができますか?

SHA IDを使用して1つずつ削除する必要がありますか?

答えて

3

まだ押していない場合は、git reset --hard HEAD~Xを実行します。ここで、Xはコミットの数です。

+0

うわー、素晴らしいアイデア。私は新しいブランチをチェックアウトし、二重になるまですべてのコミットを削除していました。 – Rodrigo

+0

'git reset --hard remoteName/branchName'を実行することもできます。それはあなたの支店をどこまで戻って行くかを数えることなく、リモートのものに戻します。 – Andy

+0

OKですが、これはより安全です。私が行っていることを見ることができます:) – Rodrigo

0

は、.git/refs/original/ディレクトリ内の未書き込みの参照のバックアップコピーを作成します。 これらのリファレンスを以前の場所に移動することによって運が良いかもしれません。

こうすることで、各ブランチヘッドを個別にリセットする必要はありません。

関連する問題