LoginSignup
0
0

More than 3 years have passed since last update.

gitignoreが反映されなかったとき

Last updated at Posted at 2021-03-22

why

railsでgitignoreが反映されず、大事なenvファイルがGitHubモロ出しになってしまっていたのでこの対処方をアウトプットします。

問題

「.envファイル」を作成し、APIキーなどを記述、

env.
API=*****************
API2=****************

GitHubに載せたくないので「gitignore」に「.envファイル」を記述

gitignore.
/.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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0