2015-01-08 44 views
138

Tôi vừa tạo kho lưu trữ Github và tự hỏi tệp .gitignore là gì. Tôi bắt đầu bằng cách không tạo ra một, nhưng thêm một do thực tế là hầu hết các kho có một. Tôi có cần phải có? Có thể/tôi chỉ cần bỏ qua nó, hoặc nó có một sử dụng? Tôi đã làm một số nghiên cứu về chủ đề này nhưng không thể tìm thấy một lời giải thích cụ thể.Chính xác là gì .gitignore?

Trả lời

106

.gitignore nói git mà file (hoặc mô hình) nó nên bỏ qua. Nó thường được sử dụng để tránh các tập tin tạm thời từ thư mục làm việc của bạn không hữu ích cho các cộng tác viên khác, chẳng hạn như các sản phẩm biên dịch, các tệp tạm thời tạo ra IDE, v.v.

Bạn có thể tìm thấy chi tiết đầy đủ here.

+7

Nó cũng tốt cho mật khẩu và bảo mật quá – TheBlackBenzKid

+0

Vì vậy, nếu bạn tạo một .gitignore trong một kho lưu trữ mới trên github.com, và sau đó làm một git init và git thêm *. * Trên máy tính cục bộ của bạn - chưa được kết nối. gitignore vì nó chưa được kết nối với kho lưu trữ đó - nó hoạt động như thế nào? Nó có hiệu lực khi tôi thực hiện một cam kết git? Hoặc là? – Xonatron

+0

'_._ gitignore' được sử dụng để làm gì? là nó chỉ được sử dụng khi 'gitignore' nằm trong một chỉ mục phụ? –

29

Đó là danh sách các tệp bạn muốn git bỏ qua trong thư mục công việc của bạn.

Giả sử bạn đang sử dụng máy Mac và bạn có .DS_Store tệp trong tất cả các thư mục của bạn. Bạn muốn git bỏ qua chúng, vì vậy bạn thêm .DS_Store dưới dạng một dòng trong .gitignore. Và cứ thế.

Các tài liệu git sẽ nói với tất cả các bạn cần phải biết bạn: http://git-scm.com/docs/gitignore

+1

Kịch bản '.DS_Store' của bạn cuối cùng đã cộng hưởng với tôi vì tôi đoán tôi không liên quan đến khái niệm này vì tôi chưa cần sử dụng nó trong một dự án. Cảm ơn bạn. Tôi đã sử dụng [this] (https://gist.github.com/octocat/9257657) làm điểm bắt đầu khi tôi sử dụng tất cả các hệ điều hành khác nhau, đặc biệt chú ý đến phần '# OS generated files #'. – phoenixlaef

+1

Tôi biết tôi đến cuối chủ đề này, nhưng cảm ơn bạn @AndyLester! Tôi là một người mới khi nói đến lập trình và Github. Tôi tìm thấy nhiều câu trả lời được viết để giải quyết loại câu hỏi này được điền bằng các thuật ngữ mà người mới có thể không hiểu (tức là, các sản phẩm biên dịch, các tệp tạm thời IDE tạo .... những gì h @ ll là những thứ này!). Tuy nhiên, mô tả Mac của bạn là hoàn hảo trong sự đơn giản thanh lịch của nó! – Vesuccio

8

Khi bạn thực hiện cam kết, bạn không muốn vô tình bao gồm các tệp tạm thời hoặc tạo các thư mục cụ thể. Do đó, hãy sử dụng .gitignore liệt kê các mục bạn muốn bỏ qua khi cam kết.

Ngoài ra, quan trọnggit status là một trong những lệnh thường xuyên nhất được sử dụng mà bạn muốn git status để ra khỏi danh sách các tập tin đã được sửa đổi.

Bạn muốn danh sách git status sạch sẽ từ các tệp không mong muốn. Ví dụ, tôi đã thay đổi a.cpp, b.cpp, c.cpp, d.cpp & e.cpp Tôi muốn tôi git status để liệt kê như sau:

git status 
a.cpp 
b.cpp 
c.cpp 
d.cpp 
e.cpp 

Tôi không muốn git status để ra khỏi danh sách các file đã thay đổi như thế này với các tập tin đối tượng trung gian & tập tin từ việc xây dựng thư mục

git status 
a.cpp 
b.cpp 
c.cpp 
d.cpp 
e.cpp 
.DS_Store 
/build/program.o 
/build/program.cmake 

Do đó, để tự mình thoát khỏi git status để liệt kê ra các tệp tạm thời trung gian & vô tình cam kết chúng vào repo, tôi nên tạo một .gitignore mà mọi người đều làm. Tất cả những gì tôi cần làm để liệt kê ra các tệp tin & thư mục trong số .gitignore mà tôi muốn loại trừ khỏi cam kết.

Sau đây là .gitignore của tôi để tránh phạm file không cần thiết

/*.cmake 
/*.DS_Store 
/.user 
/build 
2

Có những tập tin mà bạn không muốn Git để kiểm tra vào.Git thấy mọi tệp trong bản sao làm việc của bạn là một trong ba điều sau:

  1. theo dõi - tệp đã được tổ chức trước đó hoặc đã cam kết;
  2. không được theo dõi - một tệp chưa được tổ chức hoặc cam kết; hoặc
  3. bị bỏ qua - một tệp mà Git đã được yêu cầu rõ ràng bỏ qua.

Tệp bị bỏ qua thường được tạo ra và các tệp được tạo bằng máy có thể được lấy từ nguồn lưu trữ của bạn hoặc không được cam kết. Một số ví dụ phổ biến là: cache

  • phụ thuộc, chẳng hạn như nội dung của /node_modules hay /packages
  • biên dịch mã, chẳng hạn như .o, .pyc, và .class file
  • thư mục build đầu ra, chẳng hạn như /bin, /out, hoặc /target
  • tệp được tạo vào thời gian chạy, chẳng hạn như .log, .lock hoặc .tmp
  • tập tin hệ thống ẩn, chẳng hạn như .DS_Store hoặc Thumbs.db
  • tập tin cấu hình IDE cá nhân, chẳng hạn như .idea/workspace.xml

file Ignored được theo dõi trong một tập tin đặc biệt có tên .gitignore đó được kiểm tra ở tại thư mục gốc của kho lưu trữ của bạn. Không có lệnh git ignore rõ ràng: thay vì tệp .gitignore phải được chỉnh sửa và cam kết bằng tay khi bạn có các tệp mới mà bạn muốn bỏ qua. Các tệp .gitignore chứa các mẫu khớp với tên tệp trong kho lưu trữ của bạn để xác định xem chúng có bị bỏ qua hay không. Đây là tệp sample.gitignore. Để biết thêm chi tiết, hãy xem link