Làm cách nào tôi có thể bỏ qua các thư mục bin và obj từ kho lưu trữ git?


111

Tôi muốn bỏ qua các thư mục bin và obj khỏi kho lưu trữ git của mình. Như tôi đã phát hiện ra, không có cách nào dễ dàng để làm điều này trong .gitignore. Vậy còn cách nào khác không? Sử dụng giải pháp sạch trong Visual Studio?


Nó hoạt động OK cho tôi - tôi thêm những từ 'bin' và 'obj' như dòng riêng biệt trong tập tin .gitignore tôi
Tim Robinson

1
Và nếu giải pháp bao gồm nhiều dự án, không chỉ một?
chester89

Bạn có thể đăng chính xác những gì bạn đang cố gắng và những gì không hiệu quả. objbinở cấp cao nhất .gitignore nên bỏ qua mọi thứ được gọi objhoặc binở tất cả các cấp thấp hơn.
CB Bailey

2
Tôi hiểu rằng nội dung .gitignore áp dụng trong mọi thư mục con, vì vậy 'bin' và 'obj' hoạt động ở mọi nơi. Sẽ đăng .gitignore của tôi trong một câu trả lời.
Tim Robinson

Câu trả lời:


164

Tôi không chắc tại sao điều này không hiệu quả với bạn. Trong trường hợp hữu ích, đây là tệp .gitignore điển hình từ một trong các dự án Visual Studio / git của tôi:

*.suo
*.user
_ReSharper.*
bin
obj
packages

4
Tôi cũng nói thêm packagesvì bạn có thể dễ dàng tải lại chúng từ NuGet
Michal Ciechan Ngày

1
nó không hoạt động khi bạn lần đầu tiên cam kết tất cả các tệp và sau đó thêm tệp .gitignore vào kho của bạn và cam kết nó. Các tệp mới bị bỏ qua vẫn sẽ được hiển thị là đã sửa đổi (ví dụ: nếu bạn xây dựng lại).
vlad2135

7
Gần đây, tôi đã sử dụng tệp .gitignore được đề xuất tại đây: github.com/github/gitignore/blob/master/VisualStudio.gitignore với thành công lớn.
BigTFromAZ

1
@BigTFromAZ Bạn nên thêm câu trả lời đó như một câu trả lời, nó tốt hơn nhiều so với câu được chấp nhận!
Avrohom Yisroel

61

chỉ cần tạo một mục nhập trong gitignore có thể không bỏ qua các tệp, bạn có thể cần phải cam kết nó. Tôi đã sử dụng phương pháp sau và hiệu quả với tôi

git rm -r --cached .

git add .

sau đó

git commit -am "Remove ignored files"

Tuy nhiên, điều này bỏ qua thư mục script của tôi mà sau này tôi đã đưa vào kho lưu trữ.


Nó hoạt động tốt. Nhưng Vscode không thể tìm thấy mã đã sửa đổi. Tôi đã tự mình thay đổi một cái gì đó và tôi đã đẩy nó về gốc. Sau đó, nó hoạt động. :)
Dentrax

Tôi có một giải pháp với nhiều dự án và vì một số lý do mà git thêm vào. không bao giờ hoàn thành.
Chucky

Great Arvind !, một nhà phát triển mới đã hợp nhất tất cả bin / và obj / vào nhánh làm việc của chúng tôi (bỏ qua các chính sách ... tôi không biết làm thế nào!) Và đây là cách để xóa tất cả các tệp đó khỏi repo.
equintas

Newbie me (ít nhất là git), tôi đã làm điều này với chính mình. Không bao giờ nghĩ đến rm và sau đó thêm lại vì tôi không hiểu rằng git rm chỉ xóa các mục khỏi chỉ mục chứ không phải đĩa. Vì vậy, nếu tôi hiểu đúng, hai lệnh đầu tiên của bạn đã xây dựng lại chỉ mục bằng cách xóa mọi thứ khỏi chỉ mục và thêm lại mọi thứ, áp dụng bộ lọc .gitignore. Sau đó, cam kết làm cho nó như vậy trong kho lưu trữ. Rất thông minh.
BigTFromAZ

Tuyệt quá! Điều này làm việc hoàn toàn tốt cho tôi. tất cả .vs, obj, bin và các tệp bị bỏ qua khác.
Stanley Okpala Nwosa

9

Nếu bạn đang sử dụng Visual Studio thì có một cách đơn giản để thực hiện việc này.

  1. Mở Team Explorer
  2. Bấm vào cài đặt
  3. Cài đặt kho lưu trữ
  4. Trong phần Bỏ qua & tệp thuộc tính Nhấp vào Thêm bên cạnh Bỏ qua tệp.

Nó sẽ tạo một tệp .gitignore mặc định, tệp này sẽ bỏ qua hầu hết các thư mục và tệp phổ biến sẽ được sử dụng bởi khung / ngôn ngữ.

nhập mô tả hình ảnh ở đây


3
  • Định vị thư mục binobjtrong Windows Explorer
  • Nhấp chuột phải vào TortoiseGit> Xóa và thêm vào danh sách bỏ qua> thùng
  • Nhấp chuột phải vào TortoiseGit> Xóa và thêm vào danh sách bỏ qua> obj

1
Nó hoạt động hoàn hảo. cảm ơn @Denys Wessels
Biswajit Panday

2

Nếu bạn muốn bỏ qua bin và obj trong TẤT CẢ các dự án của mình thì bạn có thể sử dụng (từ trang gitignore man )

Các mẫu đọc từ tệp được chỉ định bởi biến cấu hình core.excludesfile.

core.excludesfile có thể được đặt trong một tệp cấu hình là ~ / .gitconfig trong Unix - Tôi không biết nó nằm ở đâu trong Windows


Thông tin tốt, nhưng ý của anh ấy là tất cả các dự án Visual Studio của anh ấy trong giải pháp này không phải TẤT CẢ các dự án trên máy.
AhHatem

2
Mặc dù rất có thể anh ta sẽ không bao giờ quan tâm đến việc kiểm tra các thư mục binobjtrong BẤT KỲ giải pháp nào. :)
MEMark

1

Nếu bạn đã cam kết các thư mục bin và obj trước đó, việc thêm chúng vào .gitignore sẽ không tự động xóa chúng. Bạn cần cam kết xóa các thư mục này với ví dụ git rm -rf obj, hoặc git rm -rf yourProject/obj sau đó cam kết xóa


0

Nếu bạn thử qua cây nguồn mà vẫn không thấy các tệp bỏ qua, hãy đi tới công cụ -> tùy chọn-> Git và sau đó chọn vị trí của .gitignore nhập mô tả hình ảnh ở đây


0

Trong trường hợp của tôi, các thư mục bin và obj được lồng trong thư mục Dự án từ tệp .gitignore gốc, vì vậy tôi phải thêm nó như dưới đây:

[PROJECT_FOLDER_NAME] / bin
[PROJECT_FOLDER_NAME] / obj

Thay thế PROJECT_FOLDER_NAME bằng tên thư mục dự án của bạn

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.