gitignoreとは
git addによってgitが管理するファイルを選択することができる.しかし,「絶対に管理対象にならないもの」をgit add毎に考えるのは面倒くさい.
.gitignoreの中に「絶対に管理対象にならないファイルの名前」を書いておくことで,gitの管理から必ず外れるようにできる.具体的な名前だけでなく正規表現(*や$を使った表現)を使うことができる.
使い方としては,一行にひとつの候補を書く.ちなみに,unixで書いたものをwindowsのメモ帳でみると改行されていないように見える(が実際には改行されている)
.gitignoreファイルの置き場
プロジェクトのトップディレクトリに置く.
管理対象外にしたいファイル
Gitでファイルのバージョンを管理する時,意識しなくとも管理対象から外したいファイルがある.例えば以下のようなもの.
- エディタの一時ファイル
- hoge.txt~や#hoge.txt# など最後に~が付いたり#で囲われていたりする.
- logファイル
- TeXで作ったpdf
- originalのtexファイルがあればよい
- 実行ファイル
- 大きなデータファイル
- hoge.datなど.データファイルはプログラムを動かして取得すればいいのでGitで管理しない
- プログラム関係
- C,C++
- *.oなどオブジェクトファイル
- python
- __pycache__/
- キャッシュディレクトリ
- *.py[cod]
- pycなど実行効率化のためのファイル
- *$py.class
- __pycache__/
- C,C++
基本的にはファイル名(特に拡張子)で判別できる.
gitignoreを使った管理
プロジェクトディレクトリに以下のファイルを作成する.
- .gitignore
- 頭にピリオド"."を付け忘れないように注意
その中に管理対象外にしたいファイル名を書くと自動的に管理対象から外してくれる.
具体的なファイル名でもいいが,正規表現を使うことができる.
TeX,ROS,ROS2を使用する場合の推奨
研究室での推奨.gitignoreは以下の通り.
最新版は研究室内GitLabのスニペットを参照のこと.
.gitignore
# General
*~
\#*#
*.o
\.nfs0000*
\..*
# tex
*.aux
*.dvi
*.log
*.synctex.gz
*.pdf
*.fdb_latexmk
*.fls
# for ROS,ROS2
build/*
install/*
log/*
# for Python
__pycache__/
*.py[cod]
*$py.class
venv/*
# OpenAI Gym
videos/*```