誤って作業内容と無関係のファイルをpushしてしまったときの修正方法。
リモートリポジトリにpushしたファイルの一部を削除する方法
# 別のブランチで作業中は一旦退避
$ git stash
$ git stash list // 退避できてるか確認
# 対象ブランチに切り替える
$ git branch feature_hoge
# 戻りたい地点を確認のハッシュ値を確認
$ git log --oneline
x1y2z3 今回の作業が完了 // ここでファイルを追加したので
a1b23c 前の作業が完了 // ここまで戻りたい
# ファイルの変更はそのままにコミットを取り消す
# --hard にすると作業内容(ファイルの変更)ごと消えるので注意
$ git reset a1b23c --soft
# addされているファイルを確認
$ git status
# 指定のファイルをaddから外す
$ git reset HEAD file_name
# 再度コミット
$ git commit -m "コメント"
# リモートリポジトリにpushする
# ローカルとリモートで不整合が起きるので -f で強制的に上書き
$ git push -f origin feature_hoge
# もとの作業ブランチに戻る
$ git checkout feature_fuga
# 退避していた作業内容を戻す
$ git stash pop // 最新の退避内容を復元 & 退避データは消す
$ git stash apply // 最新の退避内容を復元 & 退避データを残す
参考