LoginSignup
iwantit
@iwantit

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

git pull 時に「.env」ファイルの操作が対象外になるような 設定はどうすればいいでしょうか?

【開発環境】

Windows 10 HOME

AWS EC2
Laravel Framework 7.25.0
PHP 7.4.7

はじめに

サーバ側で git pull 時に「.env」ファイルが無くなってしまいます。
git pull 時に「.env」ファイルの操作が対象外になるような
設定はどうすればいいでしょうか?

ファイル構成は下記の通りです。
どのようにすればいいでしょうか?
どなたかご教授下さい。

【github】
「.env」 ファイルなし
「.gitignore」 で「.env」記載あり

【サーバ】
「.env」 ファイルあり

gitignore.
/public/storage
/public/*.jpg
/storage/*.key

.env
0

2Answer

「.env」 ファイルなし
「.gitignore」 で「.env」記載あり

この状態で git pull してサーバ側の .env ファイルが消えることは普通ありません。可能性としては

  1. 元々 git で .env ファイルを管理していたが、 .env ファイルを削除するコミットを追加し、それを pull してきた
  2. git pull 以外に何かコマンドを実行して .env ファイルを削除している

のどちらかが考えられます。

1の場合は、 git pull する前にサーバ側の .env ファイルを適当にリネームし、 git pull してから名前を元に戻してください。それ以降は .gitignore によって操作の対象外になります。

1

Comments

  1. @iwantit

    Questioner
    @uasi 様

    丁寧なご回答ありがとうございます。
    1. のケースが思い当たる節があり実行してみた所、
    .gitignore によって操作の対象外になりました。
    (元々.env ファイルをgithubに上げており、後に.gitignoreに記載して
    github上で手動で.envファイルを消しました)

    重ねてすみません。
    1. の操作はgithub上ではなぜこの操作で対象外に出来たのでしょうか?
  2. > 1. の操作はgithub上ではなぜこの操作で対象外に出来たのでしょうか?

    .gitignore は、git で管理されていないファイルについて、もし存在しても git の対象外にすると指示するものです。 すでに git で管理されているファイルに .gitignore は影響しません。

    GitHub 上で .env ファイルを消してサーバ側で git pull してくるとき、サーバ側では .env ファイルはまだ git の管理下にあります。よって .env ファイルは(それを消すというコミットに従って)削除されます。

    git pull が完了した後は、 .env ファイルは git の管理から外れますから、新たに作られても(リネームして退避したものを戻しても) .gitignore によって操作の対象外になります。
  3. @iwantit

    Questioner

    @uasi 様

    大変よくわかりました。
    gitについてはまだまだ初心者なので
    また質問があったらよろしくお願いします。

GitHubのコードを拝見しました。
.gitignoreの設定は問題ないと思います。
.envがGit管理内にあることが原因なので、これを管理外にすれば良いと思います。

  1. git rm.envを管理外にした後、変更をgit addgit commitする
  2. 変更をGitHubにgit pushする
  3. サーバー側でgit pullする

参考:

1

Comments

  1. @iwantit

    Questioner
    @anonymous 様

    ご回答ありがとうございます。
    参考付きでまだまだ知らないコマンドがあり
    非常に勉強になりました。

    これから勉強しようと思います。

Your answer might help someone💌