.gitignore に書いてるファイルが、git add されちゃう?除外されてない? | クズリーマンのカス備忘録

.gitignore に書いてるファイルが、git add されちゃう?除外されてない?

git logo git
スポンサーリンク

 

.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 の除外が反映されない時の対処方法 | WWWクリエイターズ
.gitignore の除外設定が反映されない時の対処方法についてです。 gitignore が反映されない原因 すでにgit add され、追跡対象になっている .gitignore  は、「git add 実行時に、新規にステージングしない」ためのファイルです。これが仕様ですので、すでに追跡が開始しているファイル...

 

.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 を落としたいが、

変更は反映させたくない場合、どうすりゃええんや?

 

 

Gitでローカル固有のファイル(configファイル等)の取り扱い
Git(Bitbucket)を使ってソース管理をしています。 configファイルといった環境固有の設定についてはリモートの共有リポジトリで雛形的なものを管理しておき、それぞれのローカルでは編集

teratailの質問者さんの質問:

ローカルの変更はリモートリポジトリに反映させたくないのですが、どうすればいいでしょうか?

.gitignoreファイルに記述するとファイル自体がなくなってしまいます。

 

 

まさにこれやんけ。

 

回答者さんの回答:

良く使われている方法としては、config.sample などの「ファイル名.sample」で、雛形として git で、バージョン管理をして、実際の設定ファイルの config は、.gitignoreファイルに記載して、git に登録されないようにすることが多いとおもいます。

なるほど、原始的な方法だけどそれがいいかー。

 

 

 

コメント

タイトルとURLをコピーしました