2010-09-15 7 views
112

Tôi đang cố gắng thu thập một số cài đặt mặc định của mình và một điều tôi nhận thấy là tôi không có tiêu chuẩn cho tệp .gitignore. Có một chuỗi tuyệt vời hiển thị một số good .gitignore for Visual Studio projects, nhưng tôi không thấy nhiều đề xuất cho Python và các công cụ liên quan (PyGTK, Django).Đề nghị tệp .gitignore cho các dự án Python?

Cho đến nay, tôi đã ...

*.pyc 
*.pyo 

... cho các đối tượng biên soạn và ...

build/ 
dist/ 

... cho sản lượng setuptools.

Có thêm đề xuất nào cho tôi không?

+0

Cảm ơn câu trả lời tuyệt vời, tất cả. + Điểm cho mọi người! – ewall

+10

Dự án này https://github.com/github/gitignore được thiết lập để trả lời chính xác câu hỏi này. – MatrixFrog

+1

.. Đừng quên thêm https://github.com/github/gitignore/blob/master/Python.gitignore vì nó cũng là một dự án python. –

Trả lời

28

Khi sử dụng buildout Tôi đã sau trong .gitignore (cùng với *.pyo*.pyc):

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

Nhờ Jacob Kaplan-Moss

Ngoài ra tôi có xu hướng đặt .svn trong vì chúng tôi sử dụng một số SCM-s nơi tôi làm việc.

+21

Giữ một repo svn trong cùng một cây như git repo của bạn !? Loại quái vật nào sẽ làm như vậy? – Daenyth

+0

@Daenyth * giggle *, cũng không thực sự, nhưng tôi có xu hướng tìm thấy một số thư mục '.vn' còn sót lại nằm xung quanh nếu tôi nhận được một thành phần từ một nguồn khác (đặc biệt trong các thành phần cũ) và tôi cũng khá lười. kiểm xuất thay vì xuất nội dung từ SVN.Tôi đã từng nhìn thấy một anh chàng thực sự cam kết còn sót lại .svn dirs trong GIT. Bạn có thể gặp rất nhiều điều kỳ lạ khi làm việc với những người ngớ ngẩn. –

+0

Âm thanh như nhóm của bạn cần được đào tạo tốt hơn một chút về cách sử dụng các công cụ của họ ... – Daenyth

6

Một câu hỏi là nếu bạn cũng muốn sử dụng git cho deploment của dự án của bạn. Nếu vậy, bạn có thể muốn loại trừ tệp sqlite cục bộ của mình khỏi kho lưu trữ, có thể áp dụng giống với tệp tải lên (chủ yếu là trong thư mục phương tiện của bạn). (Tôi đang nói về django bây giờ, vì câu hỏi của bạn cũng được gắn thẻ với django)

+0

Đã hiểu. Vì Django không thực thi nhiều tên tệp và cấu trúc thư mục nên thật khó để xác định trước tên này. Nhưng ít nhất tôi cũng có thể ghi lại nó để tôi nhớ khi tôi đang tạo một dự án mới. – ewall

+0

Cũng đoán bạn nên ít nhất làm cho nó phổ biến để có tất cả người dùng của bạn tải lên các tập tin trong ONE thư mục trong thư mục phương tiện truyền thông của bạn, ví dụ. 'media/uploads', vì vậy bạn có thể 'bỏ qua' tất cả chúng với một quy tắc ... –

15

local_settings.py, cho các dự án django.

* ~ cho tất cả các dự án.

+0

Điều đó có ý nghĩa. Tôi thích phương pháp này của tách cấu hình chung từ cụ thể/địa phương/tư nhân. – ewall

+0

Tính năng này hoạt động như thế nào? Đó là, làm thế nào để Django hoặc Python biết khi môi trường là địa phương và khi nó được sản xuất? – MadPhysicist

4

Dưới đây là một số tác phẩm khác có thể bị tụt hậu bởi setuptools:

MANIFEST 
*.egg-info 
+0

Tôi nghĩ rằng tôi có thể để chúng ra khỏi mặc định của tôi, bởi vì một số dự án của tôi có các bản phân phối setuptools cần thiết. Nhưng đối với các plugin và như vậy, có. – 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

tại sao chúng ta nên bỏ qua tệp * .mo? chỉ vì tò mò. các tệp .po của gettext có được biên dịch riêng trên máy chủ không? –

+2

Các tệp .mo là phiên bản có thể đọc được (tệp nhị phân) của tệp .po và được nhiều người biết đến - tốt hơn rất nhiều để giữ các tệp nhị phân bên ngoài kho lưu trữ được phiên bản, khi bạn có thể (và bạn nên, kể cả bao gồm cả hai. po và .mo có nghĩa là cũng giữ dữ liệu trùng lặp trong kho, rằng VCS thậm chí không thể "bí") – dappiu