質問: お世話になっております。 下記の環境でプロジェクトを運用しております。 ``` [ブランチ] master develop feature/feature01 [ファイル] index.html index02.html index03.html ``` 開発途中でindex03.htmlは環境によって中身を変えたくなったので、Gitの管理下から外そうと思い、下記の操作をいたしました。 ``` .gitignore に index03.html を追加 $git rm -r --cached index03.html $git status deleted: index03.html ``` となり、コミットし、他のブランチにマージするとindex03.htmlが消えてしまいます。 index03.html をGitの管理下から外すには一度削除する(操作画面上では)しかないのでしょうか? おわかりになる方いらっしゃいましたらよろしくお願いします
回答: > > index03.html > > をGitの管理下から外すには一度削除する(操作画面上では)しかないのでしょうか? > > > はい。 しかしgitには、あるファイルを作業ツリーでは変更しておきたいが、その変更をコミットに含めたくないという場合にそれを実現してくれる操作があります。 以下のコマンドを試してみてください。 ``` # ファイルの変更を無視する設定 git update-index --assume-unchanged [ファイル名] # レポジトリ側が更新されたとき、レポジトリ側で上書きされる git update-index --skip-worktree [ファイル名] # レポジトリ側が更新されたとき、作業ツリーの内容が維持される # 上の設定をもとに戻す git update-index --no-assume-unchanged [ファイル名] git update-index --no-skip-worktree [ファイル名] ```