2010-09-15 2 views
112

Я пытаюсь собрать некоторые из моих настроек по умолчанию, и одна вещь, которую я понял, у меня нет стандарта для файлов .gitignore. Есть отличный поток, показывающий good .gitignore for Visual Studio projects, но я не вижу много рекомендаций для Python и связанных с ним инструментов (PyGTK, Django).Рекомендуемый файл .gitignore для проектов Python?

До сих пор у меня есть ...

*.pyc 
*.pyo 

... для скомпилированных объектов и ...

build/ 
dist/ 

... для выхода Setuptools.

Другие рекомендации для меня?

+0

Спасибо большое за ответы, все. + Очки для всех! – ewall

+10

Этот проект https://github.com/github/gitignore настроен для ответа именно на этот вопрос. – MatrixFrog

+1

.. Не забудьте добавить https://github.com/github/gitignore/blob/master/Python.gitignore, так как это также проект python. –

ответ

28

При использовании buildout я следующее .gitignore (наряду с *.pyo и *.pyc):

.installed.cfg 
bin 
develop-eggs 
dist 
downloads 
eggs 
parts 
src/*.egg-info 
lib 
lib64 

Благодаря Jacob Kaplan-Moss

Также я склонен ставить .svn, поскольку мы используем несколько SCM-s, где я работаю.

+21

Сохранение репозитория svn в том же дереве, что и ваш git repo !? Какой монстр мог бы это сделать? – Daenyth

+0

@Daenyth * giggle *, ну не совсем, но я склонен найти некоторые оставшиеся каталоги .svn', лежащие вокруг, если я получаю компонент из другого источника (особенно в старых компонентах), а также я довольно ленив, поэтому иногда копирую а не экспортировать материал из SVN.Я когда-то даже видел парня, который фактически оставил оставшиеся .svn dirs в GIT. Вы можете столкнуться со всякими странными вещами при работе с глупыми людьми. –

+0

Похоже, ваша команда нуждается в образовании немного лучше о том, как использовать свои инструменты ... – Daenyth

6

Вопрос в том, если вы также хотите использовать git для выполнения ваших проектов. Если это так, вы, вероятно, хотели бы исключить локальный файл sqlite из репозитория, что, вероятно, относится и к загрузке файлов (в основном в папку с медиа). (Я говорю о джанго сейчас, так как ваш вопрос также помечен django)

+0

Понял. Поскольку Django не применяет большую часть имени файла и структуры каталогов, трудно заранее указать их. Но я могу хотя бы отметить это, поэтому я помню, когда я создаю новый проект. – ewall

+0

Удовлетворитесь, вы должны по крайней мере сделать так, чтобы все ваши загруженные пользователем файлы в ОДНОЙ папке в вашем медиа-каталоге, например. 'media/uploads', поэтому вы можете« игнорировать »их все с одним правилом ... –

15

local_settings.py, для проектов django.

* ~ для всех проектов.

+0

Это имеет смысл. Мне нравится этот метод разделения общей конфигурации от конкретного/локального/частного. – ewall

+0

Как это работает? То есть, как знает Django или Python, когда среда является локальной и когда она является производством? – MadPhysicist

4

Вот некоторые другие файлы, которые могут быть оставлены Setuptools:

MANIFEST 
*.egg-info 
+0

Я думаю, что я могу оставить их вне моего по умолчанию, потому что некоторые из моих проектов имеют дистрибутивы setuptools, которые им нужны. Но для плагинов и т. Д., Да. – ewall

170

Github has a great boilerplate .gitignore

# Byte-compiled/optimized/DLL files 
__pycache__/ 
*.py[cod] 

# C extensions 
*.so 

# Distribution/packaging 
bin/ 
build/ 
develop-eggs/ 
dist/ 
eggs/ 
lib/ 
lib64/ 
parts/ 
sdist/ 
var/ 
*.egg-info/ 
.installed.cfg 
*.egg 

# Installer logs 
pip-log.txt 
pip-delete-this-directory.txt 

# Unit test/coverage reports 
.tox/ 
.coverage 
.cache 
nosetests.xml 
coverage.xml 

# Translations 
*.mo 

# Mr Developer 
.mr.developer.cfg 
.project 
.pydevproject 

# Rope 
.ropeproject 

# Django stuff: 
*.log 
*.pot 

# Sphinx documentation 
docs/_build/ 
+1

Почему мы должны игнорировать файлы * .mo? просто для любопытства. это файлы gettext .po, скомпилированные на сервере отдельно? –

+2

.mo-файлы - это машиночитаемая (двоичная) версия файлов .po, и, как известно, гораздо лучше хранить двоичные файлы вне репозитория версий, когда вы можете (и вы должны, включая включение обоих. po и .mo означает также сохранение дублированных данных в репозитории, что VCS не может даже «сквош») – dappiu

Смежные вопросы