Gitで管理しないファイルを設定する - .gitignore

Gitで管理しないファイルを設定しておくには「.gitignore」ファイルを使用します。touchコマンドでファイルを作成します。「.gitignore」で記述しておくと、git addコマンドで、コミット準備の状態にされなくなります。

touch .gitignore

.gitignoreは、リポジトリのどこにでも置くことができますが、リポジトリのトップで管理することを、推奨します。

絶対パス

絶対パスで記述すると、Gitリポジトリのルートからの記述になります。

「/foo」が管理されなくなる。

/foo

「/foo/bar」が管理されなくなる。

/foo/bar

相対パス

相対パスで書くと、Gitリポジトリのルートディレクトリの中のどこかに含まれているファイルが管理されなくなります。

以下の場合は「foo.txt」というファイルすべてが、管理されなくなります。

foo.txt

ワイルドカードを利用することができるので、ログだけを管理しないということができます。

*.log

管理を外したものの中で、再び管理する

管理を外したものの中で、再び管理するには「!」を使います。これ、どこで使うの?

ディレクトリを管理する

.gitignoreを書いて、必ずつまづくのは、ディレクトリだけを管理できないということです。これはGitの仕様です。

ディレクトリを管理したい場合は、ディレクトリの中にまず「.gitkeep」というファイルを作成します。これは慣習的な名前で、推奨される名前です。

fooというディレクトリを管理したい場合は「foo」ディレクトリの中に「.gitkeep」を作成します。

そして、ワイルドカードを使って、まずfooディレクトリの中にあるファイルすべてを、管理しないという記述を行います。

foo/*

.gitkeepも管理を外れているので、「!」を使って、再び管理するという記述を行います。

!foo/.gitkeep

まとめて書くと以下になります。

foo/*
!foo/.gitkeep

これで、fooディレクトリをGitリポジトリで管理できます。

関連情報