Câu trả lời:
Ưu điểm của .gitignore
nó là có thể được kiểm tra vào chính kho lưu trữ, không giống như .git/info/exclude
. Một ưu điểm khác là bạn có thể có nhiều .gitignore
tệp, một tệp trong mỗi thư mục / thư mục con cho các quy tắc bỏ qua cụ thể của thư mục, không giống như .git/info/exclude
.
Vì vậy, .gitignore
có sẵn trên tất cả các bản sao của kho lưu trữ. Do đó, trong các nhóm lớn, tất cả mọi người đều bỏ qua cùng một loại tệp Ví dụ *.db
, *.log
. Và bạn có thể có quy tắc bỏ qua cụ thể hơn vì nhiều .gitignore
.
.git/info/exclude
chỉ có sẵn cho các bản sao riêng lẻ, do đó những gì một người bỏ qua trong bản sao của mình không có sẵn trong bản sao của một số người khác. Ví dụ, nếu ai đó sử dụng Eclipse
để phát triển, nhà phát triển đó có thể thêm .build
thư mục vào .git/info/exclude
vì các nhà phát triển khác có thể không sử dụng Eclipse.
Nói chung, các tệp / bỏ qua các quy tắc phải được bỏ qua phổ biến nên được đưa vào .gitignore
và nếu không, các tệp mà bạn muốn bỏ qua chỉ trên bản sao cục bộ của bạn nên đi vào.git/info/exclude
~/.gitignore
bình luận của bạn ở trên. Tôi hiểu rằng quy tắc bỏ qua có thể ở 3 cấp độ - $PROJECT/.git/info/exclude
đối với quy tắc bỏ qua cụ thể (dự án, người dùng), $PROJECT/<any number of directories>/.gitignore
dành cho quy tắc bỏ qua cụ thể của dự án đối với bất kỳ người dùng nào ở bất kỳ đâu (khi được đăng nhập), ~/.gitignore
đối với quy tắc bỏ qua cụ thể của người dùng cho bất kỳ dự án nào cho người dùng đó trên máy đó. Dựa trên mục tiêu, bạn chọn địa điểm để đặt một mục.
git rm --cached <path-name>
sẽ xóa nó khỏi kho lưu trữ, nhưng giữ nó cục bộ. git update-index --skip-worktree <path-name>
sẽ bỏ qua các thay đổi đối với tệp, nhưng giữ nó trong kho lưu trữ. Vì tò mò: Tại sao bạn muốn loại bỏ tệp sln? Đây là một phần quan trọng của giải pháp .Net phải không?
Googled: 3 cách loại trừ tệp
.gitignore
áp dụng cho mọi bản sao của kho lưu trữ này (được phiên bản, mọi người sẽ có nó),.git/info/exclude
chỉ áp dụng cho bản sao cục bộ của kho lưu trữ này (cục bộ, không được chia sẻ với người khác),~/.gitignore
áp dụng cho tất cả các kho lưu trữ trên máy tính của bạn (cục bộ, không chia sẻ với người khác).3.
thực sự yêu cầu thiết lập cấu hình trên máy tính của bạn:
git config --global core.excludesfile '~/.gitignore'
.git/info/excludes
, khi cần .git/info/exclude
, như được xác nhận bởi tài liệu mà nó liên kết đến.
Chỉ để cung cấp trải nghiệm (thế giới thực) của chúng tôi: chúng tôi đã bắt đầu sử dụng .git / thông tin / loại trừ khi chúng tôi phải tùy chỉnh một số tệp cấu hình trên mỗi môi trường phát triển nhưng vẫn muốn nguồn được duy trì trong repo và có sẵn cho các nhà phát triển khác.
Bằng cách này, các tệp cục bộ, một khi được sao chép và sửa đổi có thể được loại trừ khỏi các xác nhận mà không ảnh hưởng đến các tệp gốc trong repo nhưng không nhất thiết bị bỏ qua trong repo.
Sử dụng .gitignore
để bỏ qua các quy tắc dành riêng cho dự án . Sử dụng exclude
hoặc một tệp bỏ qua toàn cầu để bỏ qua các quy tắc dành riêng cho môi trường của bạn .
Ví dụ: các tệp bỏ qua toàn cầu của tôi bỏ qua các tệp tạm thời được tạo bởi bất kỳ trình soạn thảo nào tôi đang sử dụng quy tắc đó dành riêng cho môi trường của tôi và có thể khác với một số nhà phát triển khác trong cùng dự án (có lẽ họ sử dụng trình chỉnh sửa khác). OTOH, .gitignore
các tệp dự án của tôi bỏ qua những thứ như khóa API và xây dựng các tạo phẩm của chúng dành cho dự án và phải giống nhau cho mọi người trong dự án.
cái đó có giúp ích không?