🐈

git commit履歴 からもパスワードを削除したい

2022/10/27に公開

ファイル中の任意の文字列だけ***削除(見えなく)する

うっかり上げてしまったパスワードをなどの情報を,リポジトリ全体から削除します.
コミット履歴からも削除される強力なツールがあります.

削除後のイメージです

##ユーザー名を隠す
'C:\\Users\\***REMOVED***\\~'

##パスワードを隠す
PASSWORD = ***REMOVED***

※ファイルごと削除もできます.

BFGが便利

BFG Repo-Cleanerというツールです.
公式ページ(https://rtyley.github.io/bfg-repo-cleaner/)

1. ダウンロード方法

  • Linuxの方

こちらの記事が参考になります.(https://yuki10.hatenablog.com/entry/2017/01/14/211430)

  • Windowsの方

ここからJarファイルをダウンロードします(https://rtyley.github.io/bfg-repo-cleaner/)

  • Macの方

おそらくMacでも使えると思います.(手元に実行環境がないのですみません...)

2.使用方法 (以下windows)

  1. jarをダウンロードする.
    https://rtyley.github.io/bfg-repo-cleaner/

  2. ダウンロードフォルダにexample.txtを作成

    例 example.txt
    dakgoaklgLDK <-パスワードの文字列
    KDFOK <-IDの文字列
    ・ <-ほかにも消したい文字列があれば改行して追加していく
    ・
    ・
    
  3. コマンドを実行する

    • 任意の文字列を指定して削除
    java -jar c:\Users\ユーザー名\Downloads\bfg-1.14.0.jar --no-blob-protection --replace-text example.txt
    git reflog expire --expire=now --all
    git gc --prune=now --aggressive
    
    • ファイルごと削除
      一番上の行を以下を参考に変更してください。
    java -jar bfg-1.14.0.jar --delete-files '*.png' 
    
  4. 強制プッシュする

    git push --force 
    

参考

Discussion