.gitignoreでGit管理したくないファイルの管理
.gitignoreの設定のやり方ついて説明します。
.gitignoreとは?
Gitのリポジトリは、.gitディレクトリが存在する配下の全てのファイルをバージョン管理します。
しかし、場合によっては、自動生成されたファイルや自身のPCにしかない環境依存ファイルなどがある場合は、それらをGitの差分管理対象から外したいです。
その時に、活躍するのがこの.gitignoreです。
ignoreは、「無視する」という意味なので、ここに書かれたディレクトリやファイルは、.gitの管理対象から外すことができます。
.gitignoreの作り方
.gitignoreの作り方1: リポジトリ作成時に設定(GitHub)
実は、.gitignoreは、リモートリポジトリを作る際に、設定することができます。
リモートリポジトリを作成時に、以下の⑤の項目が存在します。
この⑤の項目が.gitignoreの設定です。
プロジェクトの言語などによって、デフォルトで自動生成されるであろうファイルを無視するように設定をしてくれます。(とても優しい)
このリポジトリで管理するプログラミング言語を選択すれば、自動で生成されます。
.gitignoreの作り方2: 手動で作成
それ以外の場合は、手動で作成します。
ローカルリポジトリのGit管理されているディレクトリに移動します。
以下のコマンドでファイルを作成しましょう。
vi .gitignore
もしくは
touch .gitignore
.gitignoreの中身は?
基本的な.gitignoreの中身は、「環境依存ファイル」「自動生成されるファイル」などをここに記載することで、無視することができます。
例)以下のディレクトリのプロジェクトがあった場合、binディレクトリ配下を無視したい場合
project/
├ bin/
├ README.md
├ LICENSE/
├ .git
└ src/
.gitignoreの中身
# binディレクトリ
bin/
このように記載すれば、OKです。
例2)特定のファイル(拡張子が.project)を無視
# 拡張子が.projectを無視する
*.project
上記のように、正規表現を使って表すことも可能です。
実例)Javaのmavenプロジェクトの場合
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
#STS
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
#maven
target/
このように、gitignoreに記載することで、Git管理の対象から外すことができます。
.gitignoreに書いてあるけど、無視されない場合
もし、.gitignoreに書いてあるけど、無視されない場合、以下のようなケースが考えられます。
- すでにGit管理されているファイル
- すでにステージング済み(git addされている)
- .gitignoreの指定のやり方がおかしい
- .gitignoreファイル自体がGit管理されていない
人気記事 Springbootの環境構築から Hello worldまで on Mac