概要

githubにpushしてしまった後で、動作テスト中に使った自分の個人情報とかなんか公開したくない情報が含まれていた事に気がついた場合にやる事

  1. ローカルリポジトリから公開したくなかった情報のcommitを無かった事にする
  2. リモートリポジトリを一旦消してローカルリポジトリをpushしなおす

やる事

まず書き換えたいリポジトリはバックアップを取っておく

$ git clone リポジトリのURL リポジトリ名_backup

ローカルリポジトリでそのコミットを修正する

  1. ↑のバックアップとは別にcloneする(事故防止)
    $ git clone リポジトリのURL
  2. 個人情報込みでcommitしてしまったIDを探す
    diff付きでログが見られる
    $ git log -p
  3. rebase -iする
    $ git rebase -i ↑で調べたcommitid~1
    とエディタが立ち上がる
    pick ↑で指定したcommitidの短縮版 コミットメッセージ
    pick 1234567 コミットメッセージ
    pick 123a567 コミットメッセージ
    pick 12e4567 コミットメッセージ
  4. やり直したいコミットのpickをeditに変える
    edit ↑で指定したcommitidの短縮版 コミットメッセージ
    pick 1234567 コミットメッセージ
    pick 123a567 コミットメッセージ
    pick 12e4567 コミットメッセージ
  5. 個人情報をファイルから消す
    $ vim これはまずい.txt
  6. git addする
    $ git add これはまずい.txt
  7. rebaseを確定する
    $ git rebase --continue
    ここで辞めたい場合にはgit rebase --abortしておかないといけない

リモートリポジトリ(github)からアレなファイルのアレな内容を消す

  1. リモートリポジトリのbranchを消す
    $ git push origin :ブランチ名
    ブランチ名の前に:をつけてpushすると消えるのか…
  2. ローカルリポジトリをpushしなおす
    $ git push origin ブランチ名

できあがり( ´艸`)