2009-03-12 44 views
61

Khi thực hiện:git, đừng hiển thị cho tôi * .pyc trong danh sách các tệp không được theo dõi!

>git status 

Nó cho thấy một danh sách lớn của các file pyc dưới "file untracked". Tôi không muốn nó hiển thị, vì nó làm tăng thêm tiếng ồn.

Nói cách khác, làm thế nào để tôi làm cho git bỏ qua các tệp .pyc mọi lúc và cho tất cả các dự án?

EDIT

Tôi không yêu cầu cho một cách để truyền bá các file bỏ qua của tôi với những người khác, tôi thực sự chỉ có nghĩa là "cho tất cả các dự án", có nghĩa là tôi không muốn cấu hình từng dự án mới để bỏ qua các tệp .pyc.

CẬP NHẬT

tôi nên thêm rằng tôi đang làm việc trên cửa sổ, và git của tôi là msysgit

Patterns mà người dùng muốn git bỏ qua trong mọi tình huống (ví dụ, sao lưu hoặc tạm thời các tệp được tạo bởi trình soạn thảo lựa chọn của người dùng) thường đi vào một tệp được chỉ định bởi core.excludesfile trong ~/.gitconfig của người dùng.

Là .gitconfig tệp hoặc thư mục? Tôi không có một điều như vậy trong thư mục chính của tôi (C:\users\<myusername>\)

UPDATE2

Cảm ơn tất cả mọi người cho câu trả lời,

tôi giải quyết các vấn đề bằng cách sử dụng:

>git config --global core.excludesfile c:\git\ignore_files.txt 

và đặt * .pyc vào c:\git\ignore_files.txt

Trả lời

38
git config --global core.excludesfile "c:\program files\whatever\global_ignore.txt" 

Sau đó, thêm

*.foo 

vào tệp đó.

+0

điều này làm việc cho một dự án, nhưng không phải cho tất cả các dự án – hasen

+1

Rất tiếc. Sử dụng “git config --global core.excludesfile…” để đặt nó trong cấu hình toàn cục của Git. Điều đó sẽ làm việc cho tất cả các dự án. – Bombe

+0

Câu trả lời hay, làm việc lần đầu tiên. Cảm ơn bạn – dahui

3

Nếu tôi nhớ lại, có cách để tup a global .gitignore ... Nhưng vấn đề là bạn không thể chia sẻ nó với những người khác (nghĩa là, những người khác kéo mã của bạn sẽ thấy các tệp .pyc).

Vì vậy, IMHO, tốt hơn là chỉ cần thêm nó vào .gitignore cho từng dự án bạn bắt đầu. Tôi giữ một cổ phiếu .gitignore xung quanh vì lý do đó.

< flamebait>
Hoặc bạn có thể chuyển sang bzr, mà đi kèm với một danh sách mặc định hợp lý của việc bỏ qua^_^
</flamebait>

+0

'bzr' được viết bằng Python. Nó sẽ là bất ngờ nếu nó không thể xử lý các công cụ cụ thể Python tốt. – jfs

+1

Đó là sự thật. Tôi không biết mức độ đầy đủ của các mặc định, nhưng tôi biết họ cũng xử lý những thứ như Vim/Emacs trao đổi/tập tin sao lưu, tập tin .o, vv –

+0

người ta sẽ nghĩ rằng nó sẽ là hợp lý cho bzr bỏ qua. mac, nhưng nó không, svn hiện quảng cáo tôi nhớ lại. Tôi nghĩ rằng nó chỉ bỏ qua các tập tin pyc theo mặc định là nó được viết bằng python và có lẽ trong emacs quá :) – Vasil

55

Đặt trong file ~/.gitignore:

*.pyc 

Chạy:

git config --global core.excludesfile ~/.gitignore 

Tôi đồng ý với @David Wolever tùy chọn này nên được sử dụng thận trọng nếu có.

~/.gitignore ("%HOME%\.gitignore" trên Windows) chỉ là một quy ước bạn có thể sử dụng bất kỳ tên tệp nào bạn thích, ví dụ: "c:\docs\gitignore.txt".

+0

Câu trả lời hay nhất. Ngắn, đến điểm –

+0

Tại sao điều này nên được sử dụng thận trọng? – LazerSharks

+0

@Gnuey: đây là cài đặt chung được áp dụng cho tất cả kho lưu trữ git của bạn. Sử dụng nó chỉ cho các tập tin mà bạn muốn bỏ qua * "tất cả thời gian và cho tất cả các dự án" * – jfs

1

Không thể bạn thêm

* pyc

để .gitignore của bạn?

+1

'.gitignore' cho một kho lưu trữ git không hoạt động cho" mọi lúc và mọi dự án ". – jfs

+0

Tôi sắp xếp newb thành git – hasen

84

Như đã đề cập trong gitignore, git có 3 ignore files:

  • Patterns mà nên là phiên bản được kiểm soát và phân phối cho các kho khác qua clone (ví dụ, tác phẩm mà tất cả các nhà phát triển sẽ muốn bỏ qua) nên đi vào một số .gitignore file.

(mà sẽ chăm sóc của mọi thời đại: nếu một bắt chước repo của bạn, nó sẽ nhận được tập tin .gitignore)

  • Patterns mà là đặc trưng cho một kho lưu trữ đặc biệt nhưng mà không cần chia sẻ với các kho lưu trữ có liên quan khác (ví dụ: các tệp phụ nằm bên trong kho lưu trữ nhưng cụ thể cho luồng công việc của một người dùng) nên đi vào tệp $ GIT_DIR/info/exclude.

(không thú vị trong trường hợp của bạn)

  • Patterns mà người dùng muốn git bỏ qua trong mọi tình huống (ví dụ, sao lưu hoặc các tập tin tạm thời được tạo ra bởi trình biên tập của người sử dụng lựa chọn) nói chung đi vào tệp được chỉ định bởi core.excludesfile trong user's ~/.gitconfig.

(mất quan tâm của tất cả các dự án, nhưng không mọi thời đại vì nó không được sao chép khi một bắt chước repo của bạn.)

"Tất cả thời gian cho tất cả các dự án" sẽ có nghĩa là ví dụ một vỏ tùy chỉnh cho việc tạo các dự án git mới, với một .gitignore tùy chỉnh như là một phần tập tin đầu tiên của cam kết đầu tiên ...

+0

Câu trả lời thực sự rõ ràng. +1 – Paul

+0

+1: Câu trả lời toàn diện. Ngoại trừ bạn nên đề cập rằng 'core.excludesfile' có thể được đặt * cho mỗi dự án * cũng như cài đặt chung. – jfs

7

Một cách khác để bỏ qua một số mẫu tệp là: thêm * .pyc vào .git/info/excludees, đây là cách thức gọn gàng hơn nhiều.

5

thêm

*.pyc 

trong.gitignore nộp

và chạy này

git config --global core.excludesfile .gitignore 

mà làm việc cho tôi

Các vấn đề liên quan