私は最近プロジェクトをフォークし、数十回コミットした後、ファイルから削除したい機密情報があることに気付きました。そのファイルのコミットのみを元に戻し、変更を 1 つとしてやり直すか、場合によってはテキスト文字列を置き換えることによって、それを削除したいときに、BFG を見つけました。私が実行したのは:
bfg --replace-text replacements.txt -fi file .
そして、BFG出力で示唆されているように、「git reflog expire…」。リモートに強制的にプッシュした後、私のフォークは次のように言います:
This branch is XXX commits ahead, XXX commits behind …:master.
変更を 1 つのコミットとして再フォークして追加したくない場合を除き、元に戻すには遅すぎる可能性があります。修正はありますか?
編集:私の状況は、ここにあるものと非常によく似ています:
git log には何も問題はありませんが、他のアプリを使用すると、コミットごとに履歴全体が重複していることがわかります。Github Desktop にも master と originalproject/master の 2 つのブランチが表示されますが、以前は master しか表示されていなかったのを覚えています。次のステップを理解するのに十分なほど git についてよく知りません。ログのコミット ID を使用して git reset --hard master xxxx を試行すると、「パスでハード リセットを実行できません」と表示されます。