Git リポジトリの場合、履歴の一部だけを非表示にすることはできません。Git の仕組みにより、各コミットには以前のコミットのハッシュが含まれるため、Git リポジトリを使用するには完全な履歴が必要です。
ただし、いくつかのオプションがあります。1 つは、現在のコンテンツで新しいリポジトリを開始し、古いリポジトリを維持することです。その後、古い履歴にアクセスする必要がある人に古いリポジトリを与えることができます。両方のリポジトリの完全な履歴を引き続き表示できます。これを行うには、古いリポジトリと新しいリポジトリのそれぞれにリモートを追加し、使用git replace
して古いリポジトリの最後のコミットを新しいリポジトリの最初のコミットにアタッチします。詳細については、この質問への回答を参照してください。
別のオプションは、履歴をフィルタリングすることです。履歴内のコミットごとにスクリプトを実行するために使用できますgit filter-branch --tree-filter
。これにより、パスワードのすべてのインスタンスが「password」などに置き換えられます。これにより、すべてのコミットが新しいコミット ID を取得しますが、完全な履歴が保持されます。詳細については、この質問への回答を参照してください。
これらのオプションの両方を使用すると、パスワードを明らかにすることなく、完全な履歴を保持できます. 実際のコミット ID が変更される場合、すべての作業リポジトリが古いものではなく新しいものからチェックアウトされていることを確認する必要がある場合に注意してください。そうしないと、古い履歴を誤っていずれかにプッシュする可能性があります。あなたの新しいリポジトリ。念のため、古いレポにあるパスワードを変更することをお勧めします。一度そこにあると、誤ってそれらを明らかにするのは簡単かもしれません.