私は自分のブランチにコミットして、リモートにプッシュしました。 いくつかの不要なファイルが追加/変更されたことに気付かず、最初のコミットの1つでコミットされました。 これらの変更のみを削除することはできますか? (不要なファイルのみ)前のコミットからの特定の変更を削除します
ありがとう!
私は自分のブランチにコミットして、リモートにプッシュしました。 いくつかの不要なファイルが追加/変更されたことに気付かず、最初のコミットの1つでコミットされました。 これらの変更のみを削除することはできますか? (不要なファイルのみ)前のコミットからの特定の変更を削除します
ありがとう!
Gitは、ファイルを正確に保存しません。代わりに、Gitストアはをコミットします(コミットにはファイルがあります)。
Gitは、の方が非常に多く、新しいコミットを追加しています。ファイルが存在しない新しいコミットを追加することができます。これは、あなたがチェックアウト時はいつでも古いがコミットすることを意味し、ファイルが、本-それはあなたの仕事-ツリーとコミット新しいに切り替えるたび、その後、ファイルを取得するがを取り除いに追加されます。 (このファイルがリポジトリにあるのはなぜですか、そうでないのですか)
これで十分であれば、不要なファイルをgit rm
で削除し、結果をコミットしてリポジトリの上流バージョンに新しいコミットを追加します。最新のコミットにはファイルがありません。ブランチをチェックアウトすると、そのブランチの先端である最新のコミットがチェックアウトされるので、git checkout <whatever-branch>
はファイルを持たないワークツリーを提供します。しかし、ファイルは、古いコミットではまだです。
でない場合は、です。リンク可能な重複を参照してください。
[すべてのGitリポジトリのコミット履歴からファイルを完全に削除する]の可能な複製(https://stackoverflow.com/questions/307828/completely-remove-file-from-all-git-repository-commit-history) – phd