.gitignore NuGet loại trừ các gói / bao gồm các gói / kho lưu trữ.config


89

Tôi đang cố gắng tạo .gitignore cho một dự án Visual Studio sử dụng NuGet. Nó hiện chứa:

\packages/*
!packages/repositories.config

Điều này không bỏ qua bất kỳ thứ gì trong thư mục. Mọi thứ được tổ chức trên một phần bổ sung. Tôi cũng đã thử:

packages/
!packages/repositories.config

Điều này bỏ qua mọi thứ trong thư mục gói và không bao gồm các gói / repositories.config.

Tôi đang làm gì sai?

Câu trả lời:


114
/packages/
!packages/repositories.config

Bạn cũng có thể thêm một .gitignoretrong thư mục gói:

*
!repositories.config
!.gitignore

12
sẽ là một sự xấu hổ nếu .gitignorebỏ qua chính nó. +1
Thomas

2
Khối đầu tiên không hoạt động đối với tôi (git phiên bản 1.8.4.msysgit.0). Tôi nghĩ dòng đầu tiên chỉ nên packageskhông có ngôi sao.
Grant Birchmeier

1
Tôi thấy rằng Visual Studio vẫn hiển thị thư mục gói. Tôi đã phải xóa ms-persist.xmlkhỏi .gitthư mục để .gitignoretệp được tôn trọng. Xem ericnelson.wordpress.com/2014/06/21/… để biết thêm về điều này.
rudivonstaden

Tôi không biết bạn đã thử phiên bản này nhưng /packages/không hiệu quả với tôi. Thay vào đó, tôi thấy câu trả lời này rất hữu ích. Trong ngắn hạn packages/*đã làm các thủ thuật. Git phiên bản 2.6.1
Stelios Adamantidis

36

Tôi phải đối mặt với cùng một vấn đề.

Không có giải pháp nào ở trên phù hợp với tôi. Và tôi nghĩ rằng đó là một giải pháp tồi khi duy trì nhiều tệp .ignore.

Đây là cách tôi giải quyết nó.

**/packages/*
!**/packages/repositories.config

Kết hợp hai dấu hoa thị sẽ khớp với bất kỳ chuỗi thư mục nào. Tôi nghĩ rằng việc bỏ đi các dấu hoa thị sẽ có tác dụng tương tự, nhưng rõ ràng là tôi (chúng tôi) đã nhầm, vì nó có vẻ không hiệu quả.

Mẫu .gitignore chính thức cho Visual Studio đề xuất các giải pháp sau:

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config

CHỈNH SỬA: Bạn có thể sử dụng https://www.gitignore.io để tạo tệp .ignore cho dự án yêu thích của bạn :-)


2
Đây là biến thể duy nhất phù hợp với tôi vì tôi có nhiều dự án trong kho lưu trữ với thư mục gói trong mỗi. Cảm ơn.
Michael Logutov

1
Mẫu hoạt động tốt là mẫu chính thức được đề xuất cho Visual Studio + bỏ ghi chú dòng cuối cùng.
vezenkov

1
Điều này thực sự có một chút rủi ro. Nó bỏ qua bất kỳ thư mục nào có tên "gói", không chỉ thư mục ở cấp giải pháp. Tôi phát hiện ra quá muộn rằng một số lớp mô hình của tôi chưa bao giờ là một phần của kho lưu trữ.
Phong phú

2
Nó hiện đã được cập nhật: # NuGet Packages .nupkg # Có thể bỏ qua thư mục gói vì Khôi phục gói ** / package / # ngoại trừ build /, được sử dụng làm mục tiêu MSBuild. ! ** / pack / build / # Bỏ ghi chú nếu cần tuy nhiên nói chung nó sẽ được tạo lại khi cần thiết mục tiêu
Daniel Ryan

ngoại trừ việc !**/packages/build/không làm việc đối với tôi, với các giải pháp cho ... xây dựng các thư mục không được cam kết
JobaDiniz


8

Tôi thấy mô hình đơn giản này hoạt động.

/packages/*/

Nó sẽ bỏ qua tất cả các thư mục trong thư mục gói gốc, nhưng bao gồm tất cả các tệp ở đó. Không chắc chắn những tệp nào khác ngoài repositories.config có thể xuất hiện trong đó hoặc liệu chúng có nên được đưa vào kho lưu trữ hay không.

Xem thêm .gitignore Cú pháp: bin vs bin / vs. bin / * vs. bin / **


0

Đối với tôi chỉ có điều này hoạt động:

**/packages/**

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.