Git

【Git】.gitignoreの書き方|バージョン管理しないファイルを除外する

本記事では、バージョン管理しないファイルを除外設定することができる.gitignoreファイルの書き方について解説しています。

先輩くん
先輩くん
本記事ではGitを使用します。
Gitのインストールをしていない人はこちらの記事を参考にしてください!

Gitの学習におすすめ参考書
改訂2版 わかばちゃんと学ぶ Git使い方入門

本書情報
著者湊川 あい
発売日2021/6/12
ページ数280ページ
Kindle版
レビュー
(Amazon)
(84件)

参考書が苦手な人はUdemyの動画がおすすめ
もう怖くないGit!チーム開発で必要なGitを完全マスター

動画情報
作成者山浦 清透
学習時間5.5時間
受講者数40,161人
レビュー (7,512件)
動画の詳細はこちら

.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ファイルを設定する一連の流れになります。

参考記事

Git公式ドキュメント

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村