質問: お世話になります。 gitで管理対象になっているファイルを管理対象外にする方法でつまづいています。 今までは管理対象でしたが、事情により自分のローカルでのみ設定を変えたいファイルがあったので、 リモートリポジトリでは今まで通り管理対象として扱い、 自分のローカルでのみリモートと異なる内容に変えて管理対象外としたい、と思っています。 下記を試したけどダメでした。 ``` # 管理対象から外す $ git update-index --skip-worktree path/to/file # 確認 $ git ls-files -v ・・・ S path/to/file # 管理対象から外したファイルを自分のローカル用に編集 $ vim path/to/file # 管理対象外にしたから変更なし $ git status On branch development Your branch is up-to-date with 'origin/develop'. nothing to commit, working directory clean # 別ブランチに切り替え...できない $ git checkout mysample_branch error: Your local changes to the following files would be overwritten by checkout: path/to/file Please, commit your changes or stash them before you can switch branches. Aborting ``` 上記のようにブランチを切り替えようとしたとき、切り替えることで衝突が起こる場合は 管理対象外にしたファイルでもエラーとなってしまうのでしょうか。 `git stash`などで退避させるしか方法は無いでしょうか アドバイスいただけると幸いです。よろしくお願いいたします。
回答: ローカルでのみ管理対象外にしたいのであれば、別ブランチを切って、変更があるたびに、マージをする方法ではどうでしょうか。 または、git ignore という方法もありますが、一つのブランチでリモートとローカルで別の動作をする ということは実現できません。 git ignoreはこのリンクを参照されるとよいです。