LoginSignup
8
8

More than 5 years have passed since last update.

Macでgitの歴史からパスワードを削除するコマンド

Last updated at Posted at 2015-10-16

Macでのコマンド例です

パスワードを直書きしたファイルをgitで管理してしまっていて、そのパスワードをgitの歴史から抹消したいときに使用できます。
歴史上のすべてのpasswordが空文字に置き換わります。
下記コマンド例の *.h とか password とかは適宜書き換えてください。

git filter-branch --tree-filter "find . -name '*.h' -exec sed -i '' -e 's/password//g' {} \;" -- --all
  • 上記例は password 文字列を置き換えるというものです。置き換えようとしているパスワードの文字列がパスワード以外の部分で使用されていればそれも置き換わることになるので注意してください
  • sed の -i オプションの挙動がLinuxとMacで異なる みたいなのでMac以外で上記コマンドは使用しないでください (cf. http://qiita.com/catfist/items/1156ae0c7875f61417ee)
  • 歴史上から該当パスワードを抹消するためには、上記コマンド実行後にリモートリポジトリに force push する必要があります
  • リポジトリに force push するときは細心の注意を払ってください
    • コマンド実行後に変な部分が書き換わってないか確認
    • force push するときに他のチームメンバーが作業中ではないか確認
    • できれば以前のリポジトリをバックアップ用に保存しておく
8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8