本記事では、バージョン管理しないファイルを除外設定することができる.gitignoreファイルの書き方について解説しています。
- 漫画形式で読みやすく理解しやすい
- GitHubを使った実践的な内容も分かりやすい
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
.gitignoreファイルとは
.gitignoreとは、Gitでバージョン管理しないファイルやディレクトリを指定できるファイルです。
例えば、自動生成される「desktop.ini」「thumbs.db」などのファイルは開発では不要なのでバージョン管理の対象外になります。プロジェクトによっては、現在も運用はしているけど一部ディレクトリだけをGitの管理から除外することも珍しくありません。
.gitignoreファイルの設定ミスや導入をしていないと、パスワードなどの本来アップさせてはいけない機密情報をうっかりリポジトリにアップさせてしまう事故に繋がる可能性があります。
これは本当に危険でパスワードが悪用されてシステムに影響が起きた場合、損害賠償されるケースもありますので絶対にアップしてはいけないファイルは、事前にリストアップしておいて.gitignoreファイルに設定しましょう。
.gitignoreファイルの使い方
コメントアウトの書き方
ファイルを見たチームメンバーに伝えたい内容があるときは、「#」でコメントアウトすることができます。
# ここにコメントアウトしたいテキストを記載
ワイルドカード
使用できるワイルドカードは以下の通りです。
ワイルドカード | 説明 |
---|---|
* | /以外の0文字以上の文字列にマッチ |
? | /以外の1文字の文字列にマッチ |
[] | /以外の指定した1文字にマッチ 例)[0-9]の場合、0〜9の数値にマッチ |
** | 0個以上のファイル・ディレクトリにマッチ |
特定のファイル・ディレクトリを除外
基本となる書き方になります。
.gitignoreファイルが置かれているディレクトリを基準に除外したいファイル・ディレクトリのパスを指定します。
行頭に「/」を付けることで、.gitignoreファイルが基準になります。
# .gitignoreと同じ階層のsample.htmlを除外
/sample.html
階層無視で一致したファイル・ディレクトリを除外
特定のファイル・ディレクトリを除外する方法では、行頭に「/」を付けてパスを入力しましたが、これを外してパスを設定すると、どこの階層にあってもファイルやディレクトリ名が一致すれば除外対象になります。
# 全ての階層にあるsample.htmlを除外
sample.html
特定のファイル・ディレクトリのみ追跡
.gitignoreはファイルやディレクトリを除外するための設定ファイルと解説してきましたが、特定のファイルやディレクトリのみを追跡させることもできます。
行頭に否定を表す「!」を追加することで、除外するの反対「除外しない」という意味になります。
# tracking.htmlだけを追跡する
!/tracking.html
特定の拡張子を除外
プロジェクトであらかじめバージョン管理しない拡張子が決められている場合、一つ一つディレクトリ内を確認するのは手間がかかり非効率です。
このような場合は、ワイルドカード「*」を使って階層全体に特定の拡張子を除外する設定をすることができます。
# jpg形式の画像を全て除外
*.jpg
ファイルには種類を区別するために拡張子と呼ばれるものがあります。この拡張子はファイル名の最後に「.◯○」の形で付与されており、画像であれば.jpgや.png、エクセルであれば.xlsになります。
【実践】.gitignoreファイルを追加する流れ
実際に.gitignoreファイルに除外設定をして、リポジトリに追加するまでの流れを紹介します。
まず始めに新規ファイルを一つ作成します。今回はパスワードが記載されているpw.txtファイルを作成します。
touch pw.txt
git statusコマンドで現在の状況を確認します。
git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
pw.txt
nothing added to commit but untracked files present (use "git add" to track)
pw.txtファイルが未追跡の状態であることが確認できました。続いて、.gitignoreファイルを作成しviコマンド、またはエディタで「pw.txt」と追記します。
再度git statusコマンドで現在の状況を確認してみましょう。
git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
nothing added to commit but untracked files present (use "git add" to track)
先程まではpw.txtファイルが未追跡の状態でしたが、今回はpw.txtファイルの表示が消え、新たに.gitignoreファイルが未追跡の状態になっています。
このように.gitignoreファイルを設定することで対象のファイルをGitのバージョン管理から除外することができます。
あとは、.gitignoreファイルをリポジトリにアップしていきましょう。git addコマンドで、ワークツリーからステージに追加します。
git add .gitignore
最後にgit commitコマンドで、ステージに追加されたファイルをリポジトリに反映させます。
git commit -m "Add .gitignore"
以上が、.gitignoreファイルを設定する一連の流れになります。