kho lưu trữ git bỏ qua tất cả .dlls


88

Tiêu đề nói lên tất cả. Tôi đang cố gắng thêm các gói NuGet của mình vào kho lưu trữ. Mọi thứ trừ các tệp .dll đang được phát hiện.

Tệp gitignore không chứa tham chiếu đến * .dll. Các tệp .dll không được nhận dạng khi nằm ở bất kỳ đâu trong toàn bộ kho lưu trữ. thông tin / loại trừ cũng trống.

Tôi cũng đã sao chép kho lưu trữ (tệp-hệ thống sang hệ thống tệp thay vì từ xa sang tệp-sysytem) mà không gặp may. Sự cố này cũng xảy ra trên hai máy tính khác nhau.

Tôi có thể thêm các tệp .dll theo cách thủ công, nhưng chúng phải được theo dõi. Tại sao họ không được theo dõi?


26
Nói gì git config --get core.excludesfile?
Antony Hatchkins vào

2
Ngoài ra, nói chung không phải là một ý kiến ​​hay khi sử dụng git để theo dõi các tệp nhị phân vì git không thể tính toán hiệu quả các delta giữa các bản sửa đổi, vì vậy việc giữ tất cả các phiên bản sẽ rất lãng phí nếu có dung lượng. Nếu dlls được tạo nhanh chóng, tốt hơn là bạn nên bỏ qua chúng trong git. Nếu chúng không - tốt hơn là sử dụng cơ chế đồng bộ khác (ví dụ: rsync).
Antony Hatchkins vào

Đây là các gói NuGet mà tôi đang cố gắng thêm vào git. Tôi không sử dụng "Gói Restore" chức năng của NuGet vì vậy tôi cần phải toàn bộ các gói thư mục kiểm tra trong.
Paul Knopf

Câu trả lời:


121

Bạn có ~/.gitignore_globalhoặc ~/.gitignoretrong thư mục chính của bạn cũng có thể liệt kê các mẫu tệp này không?

Xem https://help.github.com/articles/ignoring-files


6
Cho rằng ông đang làm việc với các tập tin dll, anh ta trên nền tảng Windows, vì vậy ~ phương tiện $ HOMEDRIVE $ HOMEPATH hệ điều hành Windows 7
Antony Hatchkins

9
Điều này hóa ra là vấn đề. Tuy nhiên, tôi đã không thêm tệp bỏ qua chung này. Bất kỳ lý do tại sao nó sẽ bật ra từ hư không? Bây giờ tôi nghĩ về nó, gần đây tôi đã cài đặt SourceTree (từ Atlassian). Có thể nó là thủ phạm?
Paul Knopf,

6
Tôi đã gặp vấn đề tương tự, tôi cũng đã cài đặt SourceTree trước đó. Vì vậy, tôi đoán đó là một dự đoán công bằng rằng SourceTree đã thêm tệp bỏ qua toàn cầu vì nó từng hoạt động trong quá khứ.
Andreas Krebs

8
Chỉnh sửa: OK, nó được thêm vào bởi liên kết
Andreas Krebs

31
Tôi đã phải chạy git check-ignoređể tìm xem tập tin đang ở đâu. Yêu thích nó tại ~ / Documents / gitignore_global.txt
Matt Canty

98

Nếu bạn sử dụng SourceTree và cài đặt mặc định nó sẽ bỏ qua tất cả các tệp DLL theo mặc định ... Tools => Options => Git rồi "Edit File" ... thêm dấu "#" trước .dll => "# .dll" .. . lưu và đóng.

Sau đó, đối với Windows Explorer trong thư mục gói của bạn, hãy mở một thiết bị đầu cuối GitBash và nhập "git add." và để nó hoạt động, quay lại SourceTree đợi một giây và tất cả các tệp DLL gói bị thiếu đó sẽ hiển thị để bạn cam kết và đẩy.


13
Câu trả lời chính xác cho người dùng SourceTree;)
jmpcm

Đã biết về danh sách bỏ qua toàn cầu, không thể tìm thấy danh sách đó trong GUI .. Cảm ơn!
Christoph

Công cụ => Tùy chọn => Danh sách bỏ qua toàn cầu của Git / Mercurial ... Nếu bạn không có, bạn có thể tạo và trỏ đến nó ở đó.
KevinB

2
Vị trí của file: ~ / Documents / gitignore_global.txt
James McCormack

Điều này hoạt động đối với cây nguồn, nhưng đối với studio trực quan thì việc bỏ qua không có trong gitignore của tôi. Bất kỳ tôi đã sử dụng cây nguồn cho nhiệm vụ này
Demodave

11

Tôi có thể thêm các tệp .dll theo cách thủ công, nhưng chúng phải được theo dõi. Tại sao họ không được theo dõi?

Không, chúng không nên được theo dõi, trừ khi bạn đã thêm chúng. Chỉ các tệp đã được thêm và cam kết mới được theo dõi; đó là những gì "theo dõi" có nghĩa là.

Hãy thử thêm một trong số chúng theo cách thủ công thông qua git addvà nó sẽ cho bạn biết lý do tại sao nó lại bỏ qua chúng và nhắc bạn sử dụng git add -fđể thêm tệp.


Tôi đã thực hiện "git add '/ pack'" và nó không phát hiện ra .dlls. Sau đó tôi sử dụng -f và nó đã thêm nó. Tôi đã tìm thấy vấn đề mặc dù. "* .dll" nằm trong bỏ qua toàn cầu của tôi. Không có manh mối nào về việc bỏ qua toàn cầu này đến từ đâu.
Paul Knopf

2

Bạn cần nói rõ ràng git để theo dõi bất kỳ tệp mới nào.

  1. Chạy git add filenameđể thêm tệp vào chỉ mục của git.

  2. Chạy git commitđể cam kết các thay đổi trong chỉ mục của bạn.

git status cũng sẽ hiển thị danh sách các tệp và thư mục chưa được theo dõi.

Nếu bạn muốn liệt kê tất cả các tệp trong repo bị gitignore bỏ qua, bạn có thể chạy:

git ls-files . --ignored --exclude-standard --others

Nếu bạn muốn liệt kê tất cả các tệp chưa được theo dõi trong kho:

git ls-files . --exclude-standard --others

2
Tôi đã phải "git add -f" để theo dõi các tệp trên thực tế đã bị bỏ qua. Hóa ra đó là một mục nhập trong tệp bỏ qua toàn cầu, mà một số ứng dụng đã vô tình đưa vào đó cho tôi.
Paul Knopf

2

Tôi phải đối mặt với một vấn đề tương tự. Tôi không thể thêm tệp .dll từ thư mục gói vào git của mình thì tôi thấy tệp gitignore_global.txt dưới dạng sourcetree đã tự động thêm tệp này dưới dạng cài đặt bỏ qua git chung. Tôi đã xóa * .dll khỏi tệp gitignore_global.txt và nó hoạt động tốt với tôi.

Vị trí của tệp gitignore_global.txt như bên dưới

C: \ Users \ XXXX \ Documents \ gitignore_global.txt hoặc bạn có thể tìm nó từ sourcetree TOOL => OPTION => tab GIT và tìm danh sách bỏ qua chung


1

Trong trường hợp của tôi, không có tham chiếu .dll nào trong tệp .gitignore và tôi không có tệp chung. Tuy nhiên, trong thư mục con .git, tôi đã tìm thấy một tệp có tên ms-Kiên trì.xml. Tôi đã đóng tất cả các phiên bản của Visual Studio, sau đó thêm .dlls bị thiếu của tôi theo cách thủ công vào tệp đó. Khi tôi mở lại studio trực quan, các .dlls hiển thị là cần được đăng ký. Tôi đã đăng ký và bây giờ tôi là vàng ...


0

Bạn có một toàn cầu .gitignoreở đâu đó hoặc .gitignorecác tệp khác trong các thư mục con - liên quan đến thư mục gốc của dự án của bạn.

Trên Hệ thống Linux và MacOS, toàn cầu git-ignore có nhiều khả năng nằm trong Trang chủ của bạn ~/

~/.gitignore_global

Trên Windows, nó có thể nằm trong Thư mục người dùng của bạn. Người dùng cục bộ của bạn (bạn có thể tìm hiểu bằng cách nhập vào ECHO %USERPROFILE%hoặc whoamitại dòng lệnh.

Nếu nó không có ở đó, thì chắc chắn a .gitconfigcó mặt thay thế. Tìm vị trí của gitignore ở đây (ví dụ: Documentsthư mục của Người dùng ).

Chỉnh sửa : Sử dụng git config --list --show-originđể biết chi tiết về cài đặt git đóng góp và vị trí tệp tương ứng của chúng.


0

Tôi biết câu hỏi này rất cũ, nhưng tôi đang bổ sung cho những người khác có thể truy cập câu hỏi này trong tương lai. Bạn có thể sửa đổi tệp bỏ qua chung của mình như các câu trả lời ở trên đã đề cập, nhưng điều đó sẽ ảnh hưởng đến TẤT CẢ các kho git của bạn. Thay vào đó, nếu bạn muốn một cách tiếp cận chi tiết hơn, bạn chỉ có thể loại trừ các tệp DLL cụ thể hoặc các thư mục cụ thể trong dự án riêng lẻ của mình .gitignores. Điều này ghi đè các cài đặt bỏ qua tất cả và buộc các tệp được git phát hiện và xử lý. Tôi nghĩ đây là một cách tiếp cận tốt hơn.

.gitignore (cho dự án cụ thể của bạn)

# Custom ignores
!*.dll
# or
!My.specific.dll

# rest of .gitignore
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.