.gitignoreで管理対象から外す[git rm –cached]

2019年2月7日

.gitignore(テキストファイル)を利用すると、Gitで管理するリポジトリ内のファイルやディレクトリを、その管理対象から外すことができます。

 

 

リポジトリ内にsample.txtが存在したとして、このファイルをGit管理から外してみます。

 

 

リポジトリ内に「.gitignore」ファイルを作成し、sample.txtと記述し保存します。

 

作業ツリーからsample.txtが消え、Gitの管理対象から外れたことが確認できます。代わりに.gitignoreファイルが表示されるのでコミットまで完了させます。

 

 

 

Sourcetreeの「設定>高度な設定>編集」ボタンで起動するテキストエディタでも.gitignoreファイルを直接編集することができます。(下記画像はMac版)

 

 

管理対象から外すファイルを直接選択することも可能です。下記画像のように「無視」を選択します。

 

 

すると下記のような画面が表示されるので「このリポジトリのみ」を選択し「OK」をクリックします。直接編集と同様に、.gitignoreファイルに書き込まれます。もし「グローバル無視リスト」を選択した場合には、現在作業しているリポジトリ以外の他のリポジトリ内のsample.txtファイルもGit管理対象外に指定されるので注意して下さい。

 

 

「グローバル無視リスト」を選択した場合は、.gitignoreファイルではなく、例えばMacの場合は下記の場所にある.gitignore_global ファイルが編集されます。

 

 

Github上でも「Create new file」ボタンをクリックして表示される画面から、.gitignoreファイルを作成することができます。

 

 

 

 

.gitignoreファイルの記述例


 

 

 

/の位置には注意が必要です。/の位置がはじめにある場合には、.gitignoreファイルのあるルート以下のaiueoディレクトリのみを表します。

 

仮に.gitignoreファイルに「/aiueo」と指定している場合、下記のようなディレクトリ構造ではpublic/aiueoディレクトリ以下の方はGitの管理対象に含まれます。

 

 

 

コミットしたファイルに対して


すでにコミットしてしまったファイルをGit管理の対象外にするには、.gitignoreファイルに記述する前に、「追跡を停止する(やめる)」必要があります。

 

仮にsample.txtが過去すでにコミットしたことのあるファイルだとします。これをSourcetreeで管理対象外にするには、まず目的のファイル上で右クリックから「追跡を停止する」を選択します(下記はMac版)。

 

 

 

Gitコマンドでの場合は、下記のようにします。「–cached」オプションを指定することに注意して下さい。

 

以上をおこなった後に、.gitignoreファイルも編集しておきます。

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー