.gitignoreの中身:
conf.php
$ git add
$ git status
した結果:
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: conf.php
あれ?
インデックスされとるやんけ。
あれそもそも .gitignoreって、git addはされるのか?もしかして、git commit もしくはpush で除外される?
↓ ググった
.gitignore は、「git add 実行時に、新規にステージングしない」ためのファイルです。
はい、ありがとうございます。
そんなわけないですよね。
.gitignoreに記述したファイルはインデックスの段階から除外されます。
↓
対処
とりあえずgit add しちゃったのを元に戻す。
- commit (今回commitはしてないけど)
- add
の両方を取り消すには以下のコマンド。
$ git reset HEAD
取り消されたか、確認↓
$ git status
~ 略 ~
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: conf.php
取り消されましたな。(not staged になってる)
↓
そしたら
# 実際のファイルは残して、追跡だけ除外
$ git rm –cached <FILE_NAME>
コチラを試してみる。
$ git rm --cached conf.php
rm 'conf.php'
↓
git diffしてみる。
(さっきは、git diff したとき、conf.phpが検出されていた)
$ git diff
$
お、何も出力されなかったってことは除外されましたな。
念のため、git addもしてみる。
$ git add .
$ git status
~中略~
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: conf.php
あらっ、deletedに入っちゃったな今度は。
。。。
いや、いいのか。
git の管理からconf.phpが削除される。
git で管理しない = つまり他の人がgit clone してもそのファイルは含まれない
て動きが正しいのか。
git clone では conf.php を落としたいが、変更は反映させたくない
git clone では conf.php を落としたいが、
変更は反映させたくない場合、どうすりゃええんや?
teratailの質問者さんの質問:
ローカルの変更はリモートリポジトリに反映させたくないのですが、どうすればいいでしょうか?
.gitignoreファイルに記述するとファイル自体がなくなってしまいます。
まさにこれやんけ。
回答者さんの回答:
良く使われている方法としては、config.sample などの「ファイル名.sample」で、雛形として git で、バージョン管理をして、実際の設定ファイルの config は、.gitignoreファイルに記載して、git に登録されないようにすることが多いとおもいます。
なるほど、原始的な方法だけどそれがいいかー。
コメント