.giignoreに追記したがgit管理から外れない問題

Cover Image for .giignoreに追記したがgit管理から外れない問題
Yuichi Kanno
Yuichi Kanno

以前Githubからアラートが飛んできました。
なんと、誤って個人開発で使用していたfirebaseのAPI Keyが記載されたファイルをリポジトリに上げてしまっていたんです。。。

危機管理の無さに自分で自分を責めると共に、少々事情があって少しの期間リポジトリをPrivateからPublicに変更していたため、アラートが飛んできて気がつきました。

仮にPrivateリポジトリでも上記のようなプロジェクト運営に関わる情報は不用意にリモートリポジトリにはあげるべきではないですね。

そんな事情があり、該当ファイルを .gitignore に記載してGit管理対象から除外しようと思いましたが、そんな時事件は起きました。

「あれ、反映されないぞ?」と。

アラートが飛んできていたためすぐに除外したいのに中々反映されず焦り倒していました。
その原因と解決策を今回は記録します。

原因

原因は簡単で、「一度git addしたファイルを後から.gitignoreに追記したため」でした。
なぜかというと .gitignoreの仕様上「git add時に対象ファイルをgit管理の対象外とする」のが正しい挙動だからです。
そのため .gitignoreの設定が反映されていなかったのです。

解決策

git rm コマンドを実行してgitの追跡対象から除外します。
下記コマンドのいずれかを実行します。

$ git rm <ファイル名> // ファイルを削除し、Git管理から除外
$ git rm -r --cached . // ファイル全体キャッシュ削除してGit管理から除外
$ git rm -r --cached <ファイル名>  // ファイル指定してキャッシュ削除しGit管理から除外

こちらを実行することでgit管理から外すことが出来ます。

終わりに

アラート飛んできた時はかなり焦りました。
元々大きいサービスでもなく個人の勉強用で作ったためURLは公開していなかったため不正アクセスなどの被害には遭いませんでした。

ポートフォリオとして誰かに共有する際など一時的にURLやリポジトリを共有することがあると思うので、予め気をつけておかねばですね。