#why
railsでgitignoreが反映されず、大事なenvファイルがGitHubモロ出しになってしまっていたのでこの対処方をアウトプットします。
##問題
「.envファイル」を作成し、APIキーなどを記述、
API=*****************
API2=****************
GitHubに載せたくないので「gitignore」に「.envファイル」を記述
/.env
ローカルにプッシュ
git push origin master
しかしこれだけだとローカルリポジトリのコードをみてみると「envファイル」が、、、
中を見てもしっかりとAPI記述されてしまっています、、、
##解決
こちらがとてもわかりやすかったです
https://blog.s-giken.net/394.html
原因はなにやらGitのキャッシュがあるため、、、
キャッシュとは、一度得たリソースをクライアント側で保存しそれを使い回す仕組みのことらしいです
ここでいうクライアントはGit側だと思います、
そのためgitignoreを変更した際はキャッシュをクリアしなければ反映されないということですね
ということでキャッシュをクリアしていきます。
クリアの仕方は調べるとかなり出てきました、誰もがぶち当たる初学者の壁的なものらしいです
git status
git rm -r --cached .
git status
git add .
git status
git commit -m ".gitignore update"
git push origin master
##解説
「git rm -r --cached .」で一括でキャッシュをクリアしています。
すべてのキャッシュを削除することに抵抗がある場合は、下記のようにファイルごとに指定することもできます。
git rm -r --cached ファイル名
「git add」後に「git status」を実行すると、更新された .gitignoreの内容に従って更新されたファイルのみが表示されます。
git add .
git status
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: .env
このとき、想定したファイルが正しく追加、削除されていることを確認してください。
想定していた結果と違う場合は、一度「git commit」した後、改めて、.gitignoreファイルを更新し、最初の「git rm」からやり直します。
何度もやり直しできるらしいので安心してできますね
最後にプッシュしてあげて再度ローカル側を確認してみるときちんと「gitignore」が反映されていました!
この件ではかなりGitHubを触っていたのでいろいろ覚えることができました!!
今回とても参考にしてもらった記事です
https://blog.s-giken.net/394.html
Comments
Let's comment your feelings that are more than good