5

ファイルをブランチにコミットしましたが、リポジトリにプッシュしませんでしたabc。今、このブランチから削除したいと思いabcます。どうすればこれを達成できますか?

4

1 に答える 1

7

ファイルが存在しなかったかのように、ファイルを履歴から消去したいと思っていると思います。将来のコミットでファイルを削除したいだけの場合はgit rm my-bad-file.txt、残りの回答を使用して無視してください。


ファイルが最新のコミットのみにある場合は、ファイルgit rm my-bad-file.txtを削除してからgit commit --amend以前のコミットを編集するのが最も簡単です。

問題のあるファイルを含むコミットが複数ある場合は、git filter-branch役立つ可能性があります。

git filter-branch --index-filter 'git rm --cached --ignore-unmatch my-bad-file.txt' master..abc

これの意味は:

  • git filter-branch: いくつかのコミットを書き直してみましょう!

  • --index-filter: ディスク上で実際にチェックアウトせずに、各コミットのインデックスを変更します。

  • 'git rm --cached --ignore-unmatch my-bad-file.txt': コミットごとに、「my-bad-file.txt」という名前のファイルが存在する場合はステージングを解除します。

  • master..abc: master ブランチから分岐した場所に戻る、ブランチ abc のすべてのコミットでこれを行います。

于 2012-07-15T08:25:01.447 に答える