3

私はしばらくの間gitリポジトリに取り組んできましたが、それを他の人と共有することを選択しました。コミットに個人の電子メールアドレスを使用しましたが、リポジトリを公開する前に、別のアドレスに設定しようとしています。SO 750172のようなスレッドをいくつか読んだことがありますが、それはで動作しますが、grepが含まれてgit logいる古いメールを見つけることができます。.git/logs/HEAD.git/logs/refs/heads/master

私の歴史を失うことなく、そこからそれを取り除く方法もありますか?

違いが生じる場合は、リポジトリのコピーはまだ1つしかありません。

4

1 に答える 1

4

reflogには、履歴を書き直して電子メールアドレスを変更する前の、古いバージョンのコミットへのポインターが含まれます。これが、古い電子メールアドレスが引き続き表示される理由です。これらの参照はリポジトリに対してローカルであり、それらが指す参照もコミットもリモートリポジトリにプッシュされません。したがって、公開される履歴はすでにクリーンアップされています。

戻る必要がないと本当に確信していて、reflogもクリーンアップしたい場合は、次のコマンドを実行できます。

git reflog expire --expire=now --all

しかし、これは安全のためにあり、決して必要ではない機能を削除することになるでしょう。

于 2012-11-10T17:40:20.303 に答える