2011-08-13 20 views
31

githubコミット履歴を削除してもらえますか?私はすべてのコミットを失いたくはありません。ちょうど最後の10秒ほどをギブスにプッシュしました。私はこれを行う方法を把握していないようです。ちょうどあなたが戻ってあなたのクローンにし、中に行きたいのハッシュを選ぶGithubコミット履歴を削除する

+4

http://stackoverflow.com/questions/495345/git-removing-selected-commits-from-repository同じリポジトリで他の人が協力している場合、この種のことは悪い考えです。歴史の中のバンプを乗り越え、前進する方が良いでしょう。 –

+0

すばらしいリンク。ありがとうございました! –

答えて

62

は行います

branchはあなたがプッシュしたいブランチの名前です
git reset --hard hash# 
git push -f origin branch 

。 Voilà。フォースプッシュで慎重に行動してください。使い慣れた作業ディレクトリをコピーすることができます。

+1

チャームのように働いた!私はブランチが私の枝の名前を意味していたことを認識しませんでした:P –

+1

どのようにハッシュ#を見つけるのですか? –

+1

私はtigを使って私のハッシュの歴史を見て、私が戻ってきたいものを見つけます。 gitkやgitログやソースツリーのような別のツールを使うこともできます。履歴を調べてハッシュを見つけるためのさまざまなオプションがあります。 – matthewdaniel

5

あなたはこれをしたい場合は、HEAD~10

git reset --hard HEAD~10 

git push -f origin master 

を使用することができます特に、サーバーはコミット履歴の削除を行うにはお勧めしません:あなたはこのレポで働く人々のチームを持っている場合。

これについて作業しているチームがいる場合、望ましくないコードを元に戻す別のコミットを追加することをお勧めします。

2

すべてのファイルは、秘密鍵を持つ設定ファイルを含め、最初のgithubプロジェクトにアップロードしています。私は.gitignoreファイルを追加する前にすべてのバージョンを削除して、プロジェクトのキャッシュからすべての設定ファイルを削除しなければなりませんでした。

How I did this

gedit ./.git/logs/HEAD

あなたが前にすべてを削除したい '新ルート' の40文字のSHAハッシュを検索します。それをクリップボードにコピーして閉じます。 (あなたは、gedit、Linux用のデフォルトのテキストエディタを使用しても使用しなくてもよい)。

$> gedit ./.git/info/grafts

ここにSHAを貼り付けます。プロジェクトのディレクトリに移動します。

$> cd ../..

$> git filter-branch

マスターへのプッシュを強制、それ以外の場合は、履歴を消去するためにあなたの試みをブロックします。

$> git push --force -u origin master

あなたgraftsファイルを削除します。

$> rm ./.git/info/grafts

NEVERMIND

さて、私の答えは半分だけの戦いです。私の公的活動のRSSフィードには、私が削除したいという非常に詳細な情報をすべてのdiffにリンクしています。どうやら、there is no way to delete thisですが、おそらくChange your Passwordと読んで、間違ってアップロードした機密データを更新してください。

+1

私は自分自身のために作成した_非常に珍しい状況のために、私が今日それに遭遇して以来、これに追加したかっただけです。しかし、[機密データの削除](http://help.github.com/remove-sensitive-data/)の手順を実行すると、新しいリポジトリを作成してすべての_now clean_コミットをプッシュして、古いリポジトリを削除します。これにより、公開アクティビティフィードの古いブランチ/差分へのリンクが無効になり、githubはリポジトリが存在しなくなってから404をスローします。 –

0

Gitがインストールされている場合は、Git GUI Hereを右クリックすることもできます。

選択リポジトリ - すべてのブランチ履歴を可視化

希望するコミットを右クリックします。マスターブランチの履歴をにリセットします。リロードからファイルを選択し、一度選択した

Git

今、あなたは3つのオプションがあります。

GitHub Desktopでコミット時に元に戻すを選択した後でこれを把握することができました。元のコードに戻ってから、これらのカップルをコミットし直してください。

関連する問題