ゼロから始めるDjangoソースコード解読 part3

解読

.gitattributes

概要

git全体の設定をする場合、以下のようにconfigオプションを使って設定することができます。

git config --global ~~~

リポジトリごとに設定したい場合は、.gitattributesに設定を記載します。djangoの.gitattributesファイルでは、主に改行コード周りの設定と、マージする際の設定が記載されています。

詳細

# Normalize line endings to avoid spurious failures in the core test suite on Windows.
*html text eol=lf
*css text eol=lf
*js text eol=lf
tests/staticfiles_tests/apps/test/static/test/*txt text eol=lf
tests/staticfiles_tests/project/documents/test/*txt text eol=lf
docs/releases/*.txt merge=union


項目 内容
text=auto gitが最善と判断する方法でファイルを処理する
text eol=crlf チェックアウトの際常に行終端を CRLF に変換します。 OSXLinux であったとしても、終端が CRLF でなければならないファイルにはこれを使用する必要があります。
text eol=lf チェックアウトの際常に行終端を LF に変換します。 Windows であったとしても、終端が LF でなければならないファイルにはこれを使用する必要があります。
binary 指定されているファイルがテキストではなく、変更を試みるべきではないと判断します。(バイナリファイルなどは変換されるとエラーになってしまうため)
merge=text テキストファイルとしてマージする。コンフリクトした場合、場所を教えてくれる。
merge=binary バイナリファイルとしてマージする。コンフリクトした場合、そのファイルを残す。
merge=union テキストファイルとしてマージする。コンフリクトした場合、どちらの変更も残すように適当に変更してくれる。

.gitignore

概要

.gitignoreに設定を記載することで、gitで管理するファイルを制限することができる。

詳細

# If you need to exclude files such as those generated by an IDE, use
# $GIT_DIR/info/exclude or the core.excludesFile configuration variable as
# described in https://git-scm.com/docs/gitignore

*.egg-info
*.pot
*.py[co]
.tox/
__pycache__
MANIFEST
dist/
docs/_build/
docs/locale/
node_modules/
tests/coverage_html/
tests/.coverage
build/
tests/report/
項目 内容
* /以外の0個以上の任意の文字列
** 0個以上のファイルやフォルダ
[0-9] 0~9までの数字一文字
[co] cかo一文字

終わりに

今回はgit関係のファイル二つを紹介しました。

ここら辺はもともと知っている方も多いと思います。

次回は、pythonのpre-commitというものを紹介しようと思います。(初耳のツール)

それではまた次回に。