私は、古いコミットがソース管理にはならない機密ファイルをコミットしたことに気付きました。古いコミットから単一のファイルを削除する
しかし、その時以来、多くの枝とマージがありました。私が元のコミットに戻り、リセットしてコミットをやり直すと、それ以降はすべてのブランチとマージをリベースして繰り返すことになります。
ファイルは元のコミット以来まったく編集されていません。 git log badfile.ext
は、そのコミット以外は何も表示しません。
リポジトリの履歴を、このファイルが存在しなかったように見せるために使用できる方法はありますか?それ以降のすべてのコミットを変更する必要はありませんか?
これはプライベートレポですので、私はすべてのクローンコピーがどこにあるか知っています。 1つのリポジトリで問題を修正してから、他のすべてのリポジトリを削除して再クローンして変更を取得する必要がある場合は問題ありません。
あなたは履歴を書き換えようとしています。これは、その後のすべてのコミットを定義によって変更します。 – SLaks
@SLaks元のコミットを手作業で編集してもハッシュを変更しないようなことは想像しています(変更がなかったので、後でコミットするのは編集を必要としません)。 –
いいえ。コミットのハッシュは、すべての変更ファイルとその親コミットのハッシュです。これは、gitの履歴と完全性モデルがどのように機能するかです。 – SLaks