鱼的记忆|gitgnore

Author Avatar
Euan 9月 28, 2019
  • 在其它设备中阅读本文章

gitgnore

gitgnore语法记忆

忽略文件原则

  • 忽略操作系统自动生成的文件,比如缩略图等;
  • 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库
  • 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

语法规范

  • 空行或是以#开头的行即注释行将被忽略;
  • 以斜杠 “/” 结尾表示目录;
  • 以星号 “*” 通配多个字符;
  • 以问号 “?” 通配单个字符
  • 以方括号 “[]” 包含单个字符的匹配列表;
  • 以叹号 “!” 表示不忽略(跟踪)匹配到的文件或目录;
  • 可以在前面添加斜杠 “/” 来避免递归,下面的例子中可以很明白的看出来与下一条的区别。

配置文件实例

  1. 忽略 .a 文件

*.a

  1. 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件
    !lib.a
  2. 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO
    /TODO
  3. 忽略 build/ 文件夹下的所有文件
    build/
  4. 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
    doc/*.txt
  5. 忽略所有的 .pdf 文件 在 doc/ directory 下的
    doc/*/.pdf

python

Byte-compiled / optimized / DLL files

pycache/
*.py[cod]
*$py.class

C extensions

*.so

Distribution / packaging

.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

PyInstaller

Usually these files are written by a python script from a template before PyInstaller builds the exe, so as to inject date/other infos into it.

*.manifest
*.spec

Installer logs

pip-log.txt
pip-delete-this-directory.txt

Unit test / coverage reports

htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

Translations

*.mo
*.pot

Django stuff

*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

Flask stuff

instance/
.webassets-cache

Scrapy stuff

.scrapy

Sphinx documentation

docs/_build/

PyBuilder

target/

Jupyter Notebook

.ipynb_checkpoints

IPython

profile_default/
ipython_config.py

pyenv

.python-version

pipenv

ccording to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.However, in case of collaboration, if having platform-specific dependencies or dependencies having no cross-platform support, pipenv may install dependencies that don’t work, or not install all needed dependencies.

Pipfile.lock

celery beat schedule file

celerybeat-schedule

SageMath parsed files

*.sage.py

Environments

.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

Spyder project settings

.spyderproject
.spyproject

Rope project settings

.ropeproject

mkdocs documentation

/site

mypy

.mypy_cache/
.dmypy.json
dmypy.json

Pyre type checker

.pyre/

本文使用 CC BY-NC-SA 3.0 中国大陆 协议许可
具体请参见 知识共享协议

本文链接:https://zyhang8.github.io/2019/09/28/gitgnore/