2016-09-29 11 views
1

最後のコミットではないコミットにZIPファイルを間違って追加しました。これは大きなファイルで、gitはリモートブランチ上でファイルをプッシュしようとするため、これらの変更をサーバーにプッシュしようとすると固まってしまいます。最後のコミットではないローカルコミットからファイルを削除する方法

このファイルを削除する方法を教えてください。

A --> B --> C --> D --> E --> F 

私の遠隔はAであり、Cのコミットに私が間違ってファイルを追加し、今私はそれがこのファイルを私に示して、私は

git log --name-only

を行うとF.

をコミット時によ私が手動で削除したlink

+0

されていると仮定しています」はgitの状態の結果を印刷することができます - 削除されたように、このファイルを表示していますか? – prabodhprakash

+0

ここにgit statusの結果があります。[link](http://prntscr.com/cnubmv)@prabodhprakash –

+0

さて、もう1つの質問 - あなたが先に進んでいる5つのコミットについては、コミットのログを表示できますか?ファイルを削除しました。これらのコミットのいずれかでファイルが追加されていないことを一度確認してください。 – prabodhprakash

答えて

0

git rebase -iは、Git-Tools-Rewriting-Historyのように対話形式で使用できます。これにより、4つの新しいコミット(C '、D'、E '、F')が作成され、元のコミットが削除されます。あなたがローカルのgitリポジトリの外のどこにでも変更をプッシュしていないなら、それは大丈夫です。さもなければ、あなたはそれをどうしてもしないでください!

+0

このエラーが表示されます。「リベースできません:あなたにはステージングのない変更があります。 それらをコミットまたは隠してください。 ' –

+0

エラーメッセージに「最後のコミット後に変更を加えました。インタラクティブリベースは、リベースするコミットごとに作業ディレクトリを変更するので、 'clean'ディレクトリが必要です。私はあなたの実際の変更をコミットしたくない場合、 'git stash'を使ってそれらを保存し、' git stash apply'(https://git-scm.com/docs/)でリベースした後にそれらを取り戻すことができます。 git-stash)。 –

+0

それは 'ああ、(コミットする前に、あなたがそうであるように、しかし、この時間はあなたが後でスタッシュを使用します)私は'あなたが*追加gitの 'で最初にあなたの変更をステージングする必要があることを言及するのを忘れてしまった –

0

gitが-i HEAD〜20 //最後の20回のコミットをリベースコミットのリストが

//が適切なコミットとタイプ '編集' に行く表示されます

// Enterキー」のヒットをリベースあなたのキーボード

に私はあなたがナノを使用していないvimの

+0

このエラーが表示されます。 'Can not rebase:あなたは変更を一瞬してしまいました。 それらをコミットまたは隠してください。 ' –

+0

その後、エーテルを隠すか、コミットしてください。通常、git statusを実行することによって、何が起こっているのかを見ることができます。 – gkalikapersaud

関連する問題