プログラミングにおいて、今やバージョン管理システムのGitはなくてはならないものになっています。
そんなGitですが、使っているとたまに非常に困った場面に遭遇することがあります。
そのうちの一つが知らないうちに共有するとマズイファイルがリモートリポジトリに上がっていたパターンです。
具体的には、環境によって設定値が異なったりする場合に、誰かが自分の環境用の設定ファイルを上げてしまった…といった場合になります。
Gitのようなバージョン管理ツールでは、”ファイルを削除した”という事実も履歴となるため、単純にファイルを削除しただけでは解決するどころか、ほかのメンバーの設定ファイルもプルをしたタイミングで削除されてしまう、といった現象が発生してしまいます。
そうなってしまった場合の対症療法的な対処法として、ローカルリポジトリに、特定のファイルをバージョン管理上から無視してもらうように設定することで回避できます。
設定はコマンド上から行います。
git update-index --skip-worktree 除外するファイルのパス名
このコマンドで指定されたファイルは、以降リモートリポジトリで何らかの変更があっても一切反映されなくなります。
可能であれば、リモートリポジトリ側の履歴を修正するのが一番なのですが、もしどうしようもなくなってしまった場合は試してみてください。
参考: