質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Q&A

解決済

1回答

445閲覧

git でローカルの変更をリモートに反映させずに毎回保つ方法

Sonono

総合スコア85

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

0グッド

0クリップ

投稿2020/05/14 01:37

わかりにくいタイトルですみません...!
現在docker上のcakephpでチーム開発をしており、デバックとしてxdebugを導入したいと考えています。
そのためにphp.iniを変更する必要があるのですが、これは私個人のデバックのための変更なので、リモートにはあまり反映させたくありません。
しかし、反映させないとブランチをうつるたびにphp.iniの変更が必要になってしまいますよね?これをどうにかする方法はないのでしょうか。

git初心者です。変な質問かもしれませんが、教えていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoorwm

2020/05/14 01:49

> しかし、反映させないとブランチをうつるたびにphp.iniの変更が必要になってしまいますよね? ここから間違っています。 各自、同じ環境で開発できる、というのがdockerなどの仮想環境を使う利点なので、普通は変更しないで使えるはずなのです。 具体的にどのような設定をしていますか?
Sonono

2020/05/14 01:58

コメントありがとうございます。 master的立ち位置のブランチのdevelopがあり、毎回ここからブランチを切って開発->developにプルリクを送っています。 自分の開発ブランチでphp.iniを変更しても、developに変更を反映しない限り、次にまたdevelopからブランチを切った際には変更がなくなっているのではないかと思いました。
guest

回答1

0

ベストアンサー

私個人のデバックのための変更

ということですが、開発環境ではチームのみなさんも xdebug を使いませんか?

開発環境では自分だけでなく、チームも xdebug を使う場合

環境を開発用と本番用で分けることで、
開発環境用の php.ini を push しても問題なくなります。

Docker を使っているということは、
開発環境の設定をある程度チームで共有できていると思いますので、
チームの開発環境を構築した方と相談するとよいでしょう。

開発環境と本番環境の php.ini の分け方

大枠だけを説明すると、

  1. 本番環境用の php.ini のテンプレートとして、php.ini.production をコミットしておきます
  2. 本番環境へのデプロイ処理に php.ini.production から php.ini を生成する処理を追加します

これで、開発環境の php.ini を プッシュしても本番環境には影響がなくなります。

自分だけが xdebug を使う場合

自分だけで、今すぐできること

git stash を使い、
ローカルリポジトリーに自分の php.ini への変更を保存しておきます。

作業ツリー上が php.ini の変更だけであることを確認します:

console

1# php.ini だけが変更されています 2 3$ git status 4On branch feature 5Changes not staged for commit: 6 (use "git add <file>..." to update what will be committed) 7 (use "git restore <file>..." to discard changes in working directory) 8 modified: php.ini 9 10no changes added to commit (use "git add" and/or "git commit -a") 11 12# php.ini の変更内容は、たとえば次のような内容でしょう 13 14$ git diff php.ini 15diff --git a/php.ini b/php.ini 16index e69de29..0bc13df 100644 17--- a/php.ini 18+++ b/php.ini 19@@ -0,0 +1,4 @@ 20+[xdebug] 21+zend_extension="<path to xdebug extension>" 22+xdebug.remote_enable=1 23+xdebug.remote_port = <port_number>

php.ini の変更を stash に保存します

console

1# あとで見たときにわかりやすいように "xdebug" という名前をつけておきます 2 3$ git stash --message xdebug 4The file will have its original line endings in your working directory 5Saved working directory and index state On feature-a: xdebug 6 7# stash を確認すると、xdebug 設定の変更履歴として保存されています 8 9$ git stash list 10stash@{0}: On feature-a: xdebug 11 12# 作業ツリー上からは php.ini の変更がなくなります 13 14$ git diff php.ini 15 16

これでブランチを切り替えられます:

console

1$ git checkout feature-b 2Switched to branch 'feature-b'

ここで xdebug の設定を再度適用します:

console

1# stash の一覧を確認し、メッセージが "xdebug" のインデックスを確認します 2# この例では、インデックスは 0 です 3 4$ git stash list 5stash@{0}: On feature: xdebug 6 7# インデックスを指定して、stash apply コマンドを実行します 8 9$ git stash apply 0 10On branch feature-b 11Changes not staged for commit: 12 (use "git add <file>..." to update what will be committed) 13 (use "git restore <file>..." to discard changes in working directory) 14 modified: php.ini 15 16no changes added to commit (use "git add" and/or "git commit -a") 17 18# 作業ツリーに変更が適用されています 19 20$ git diff php.ini 21diff --git a/php.ini b/php.ini 22index e69de29..0bc13df 100644 23--- a/php.ini 24+++ b/php.ini 25@@ -0,0 +1,4 @@ 26+[xdebug] 27+zend_extension="<path to xdebug extension>" 28+xdebug.remote_enable=1 29+xdebug.remote_port = <port_number>

この stash を消してしまったり、ローカルリポジトリー自体を削除してしまうと、
xdebug 設定のための変更内容は失われてしまうので、
心配な場合は別途手順を wiki 等に残しておくことをおすすめします。

チームと相談すること

php.ini の設定が開発者によって異なる場合、
php.ini を Git 管理から外すことを検討してみましょう。

開発環境と本番環境の php.ini の分け方

大枠だけを説明すると、

  1. 本番環境用の php.ini のテンプレートとして、php.ini.production をコミットしておきます
  2. 本番環境へのデプロイ処理に php.ini.production から php.ini を生成する処理を追加します
  3. php.ini を Git 管理から外します

これで、開発環境の php.ini は Git とは関係なくなり、自由に編集できるようになります。

php.ini をコミット・プッシュしてしまわないよう、
.gitignore に登録しておきます:

text

1php.ini

標準的な設定があるのであれば、
php.ini.development などとしてテンプレートファイルを用意し、
開発者はそのファイルをコピーして開発を始める手順にするとよいでしょう。

投稿2020/06/26 06:27

編集2020/06/26 06:30
y_shinoda

総合スコア3272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Sonono

2020/06/29 07:17

チームの人たちはxdebugを使っていないようなので、自分だけが使う場合の方を参考にさせていただきます...!とても詳しくわかりやすく教えていただきありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問