この記事ではGitでよく使われるgitignoreについて解説をしていきます! gitignoreをよく目にするけれど、いまいち何をするものなのか、分かっていない方も多いのではないでしょうか。
gitignoreを自分で書いてみたい
といった方に向けてこの記事では、
- gitignoreとは
- Windowsでgitignoreファイルを作る方法
- gitignoreの基本的な書き方
について、解説をしていきます。gitignoreを書いてみたい方は、ぜひこの記事を参考にしてみてください!
gitignoreとは
まずはgitignoreとは何かについて知っておきましょう。gitignoreはGitで使われる特殊なファイル名で、このファイルに書かれたファイルは上から順に処理されて、Gitのトラッキングの対象外になります。
Gitのトラッキングの対象外になるということは、Gitで管理していたディレクトリの中にあっても無視されるということです。ちなみに実際のファイル名は「.gitignore」で、隠しファイルとして存在します。
このgitignoreにはGitで扱うプロジェクトや、OSの種類ごとに様々な種類のファイルがすでに用意されていることもよくあるので、プロジェクトのGitHubなどを見て確認してみましょう。
また、gitignoreはプロジェクトの中に複数置くことが出来ます。名前は変えられませんが、深い階層にあるgitignoreに書かれた命令のほうが、後に解釈されるので優先順位が高くなります。
Windowsでgitignoreファイルを作る方法
それでは早速gitignoreを作ってみましょう。しかし、Windowsでは隠しファイルをテキストエディタなどで作ることは出来ません。
そこで一旦、「.gitignore.」でファイルを作り、そこから後ろのドットを1つ消して、「.gitgnore」を作りましょう。Macでは一般的なテキストエディタで簡単に作ることが出来ます。
ちなみにWindows 10で隠しファイルを見るには「スタート > エクスプローラー > 表示」で、「ファイル名拡張子」と「隠しファイル」にチェックを入れます。MacではFinderからショートカットキーで「⌘ + Shift + .」で隠しファイルの切り替えが出来ます。
gitignoreの基本
それでは早速gitignoreを書いてみましょう。gitignoreに書かれるものは基本的に無視されるものです。ちなみに、今回の解説のファイル構成は、
├.gitignore ├temp.txt └temp └temp.txt
このようになっています。
コメント
まずはコメントの書き方です。コメントはこのように書きます。
# この行はコメント
「#」以降はすべてコメントとして扱われて無視されます。gitignoreはGitで管理をしているうちに長くなってくるものなので、コメントをしっかりと書いてどのようなファイルを除外しているのか、分かりやすくしておきましょう。
ファイル名やディレクトリを直接指定
gitignoreにファイル名やディレクトリを直接指定することも出来ます。こちらのコードを見てみましょう。
# temp.txtを無視する temp.txt # tempディレクトリを無視する temp/ # tempディレクトリを無視する /temp/
特定のファイルの指定は、ファイル名を書くだけなので簡単ですね。この場合は2つある「temp.txt」全てが無視されます。また最初に「/」をつけるかどうかで無視されるディレクトリも変わります。
最初に「/」がついていれば、gitignoreが置いてあるディレクトリからの相対パスで指定されたディレクトリを無視します。最初に「/」がついていなければ、全てのディレクトリを探して指定されたディレクトリを無視します。
「*」と「!」を使った指定
先程はファイル名やディレクトリを直接指定する方法について紹介しましたが、全てを羅列するのは少し手間がかかりますね。ここではワイルドカード「*」と否定「!」を使った方法についても見ていきましょう。
こちらのコードをご覧ください。
# .txtの全てを無視する *.txt # tempディレクトリを無視しない !temp/
「*」は全ての、「!」は否定で使うことが出来ます。これでファイル名を指定するよりもより簡単に、より細かくファイル名を指定することができるようになりましたね。
まとめ
この記事ではGitのgitignoreについて、gitignoreの基本と書き方について解説をしてきました。gitignoreの書き方について、なんとなく分かっていただけたでしょうか?
gitignoreは簡単なようでとても奥が深く、インターネット上にもたくさんのトラブルシューティングがあります。この記事を参考にgitignoreについて興味を持って頂けたら幸いです!