git管理をしている途中で、特定のディレクトリやファイルをgit管理から外したくなることがあります。
まあまあこうした機会に遭遇することがあるので覚書しときます。
いつもわからなくなるんだよね
もくじ
git管理から除外する流れ
git管理から除外したいディレクトリ・ファイルを追記する
例)imgディレクトリ以下全て管理除外したい場合(.gitignoreファイルにて)
/img
git rm --cached -r 削除したいディレクトリorファイル名
git rm –cached -r 削除したいディレクトリorファイル名
git rm --cached ファイル名
$ git add .
$ git commit -m "(例)imgディレクトリを管理対象から除外"
.gitignoreに追記する
管理から外したいディレクトリ・ファイルを.gitignoreに追記します。
*除外したいのがimgディレクトリの場合
img/
<.gitignoreが見つからない!という方>
通常は隠しファイルになっています。macを使用している方はFinderで⌘ + SHIFT + .
を押してみてください。gitを置いたディレクトリに.gitignoreが出現します。
ワーキングツリー・インデックスから除外
rmコマンドのフォーマット解説
rmコマンドを使用します。
git rm --cached -r 削除したいディレクトリorファイル名
git rm --cached ファイル名
コマンドrm
コマンドでディレクトリやファイルをワーキングツリーとインデックスから除外します。
オプション-rの解説
-r
Allow recursive removal when a leading directory name is given.
ディレクトリが指定された場合は、ディレクトリ名を基準にして、そのディレクトリ内のファイルやサブディレクトリを含めてすべて削除できます。
オプション–cachedの解説
–cached
Use this option to unstage and remove paths only from the index. Working tree files, whether modified or not, will be left alone.
--cached
オプションを使用することで、ファイルを ステージングエリア(インデックス)から削除 するものの、実際の作業ディレクトリ(ワーキングツリー)内のファイル自体はそのまま残る、という意味です。例えば、ファイルを「git add」でステージングした後に git reset --cached <ファイル名>
を実行すると、ステージングエリアからは外れますが、ファイルはディスク上にそのまま残り、内容も変更されません。
ワーキングツリー: 実際にローカルのプロジェクトで作業しているファイルやディレクトリの状態。ここでファイルを編集します。
ステージングエリア: git add
コマンドで、コミットする前にファイルの変更内容を一時的に保存する場所。コミットしたい変更を準備するためのエリア。
(例)imgディレクトリを管理から消す
git rm --cached -r img/
ディレクトリごと管理から外したいので-r
オプションが必要ですね。
コミットして完了
コミットしてgit管理から除外完了。
$ git add . $ git commit -m "(例)imgディレクトリを管理対象から除外"
おしまーい。
おつかれえええええ!!!