2012-06-20 55 views
27

Tôi có dự án C# Visual Studio trong kho lưu trữ git. Tôi muốn bỏ qua nội dung thư mục bin/Debug nhưng không phải nội dung của thư mục bin/Release '. Tôi đã thêm bin/Debug vào tệp .gitignore của mình, nhưng nó có vẻ không hoạt động - nó bao gồm toàn bộ nội dung của thư mục bin. Mục nhập chính xác sẽ làm gì?.gitignore và Visual Studio: Bỏ qua thư mục bin/Debug nhưng không phải thư mục bin/Release

+0

hiển thị cho chúng tôi tệp '.gitignore' của bạn, vui lòng – uday

+4

thêm 'Debug /' vào .gitignore – Noah

Trả lời

0

tôi cố định này bằng cách thay thế bin/Debug với Debug.

Điều này cũng sẽ có ảnh hưởng đến bỏ qua thư mục obj/Debug, tuy nhiên tôi muốn bỏ qua toàn bộ nội dung của thư mục obj, vì vậy tôi cũng đã thêm obj-.gitignore.

26

Dưới đây là những gì chúng tôi đã sử dụng gần đây, nó xóa tất cả các công cụ được tạo lại và một số thứ quan trọng khác. Lưu ý rằng chúng tôi không cam kết thư mục phát hành của chúng tôi, vì vậy bạn không nên bao gồm Release/ trong số .gitignore của mình, nhưng để trả lời câu hỏi của bạn, bạn nên bao gồm Debug/.

/build/ 
*.suo 
*.user 
_ReSharper.*/ 
*.sdf 
bin/ 
obj/ 
Debug/ 
Release/ 
*.opensdf 
*.tlog 
*.log 
TestResult.xml 
*.VisualState.xml 
Version.cs 
Version.h 
Version.cpp 

CẬP NHẬT

Dưới đây là một ví dụ khá toàn diện từ github:

+2

Điều này có thể sẽ không hoạt động do' bin/'bỏ chỉ thị làm' Debug/'và' Release/'dư thừa. –

+0

Bạn nên thử trước ... – Noah

+1

@ Gary.S, nó vẫn hoạt động. Các dòng sau chỉ thừa và có thể bị xóa. –

23

Điều này thường xảy ra vì wa .gitignore s được thêm vào sau khi các tệp đã được cam kết. Các .gitignore nói git để bỏ qua các tập tin untracked phù hợp, một khi các công cụ cam kết bỏ qua sẽ không còn làm việc. Một cách để khắc phục nó là xóa thư mục bin/debug (thủ công thông qua explorer/powershell/bash), sau đó cam kết xóa. Một khi điều đó được thực hiện, những lời bỏ qua sẽ hoạt động như bạn mong đợi.

  1. Gỡ bỏ các file/thư mục
  2. git add -A
  3. git commit
24

Bạn không cần phải xóa mọi thứ. Sau khi bạn thêm các tập tin .gitignore, chạy lệnh này để xóa bộ nhớ cache, sau đó sân khấu và cam kết một lần nữa:

git rm -r . --cached 
+1

Lưu ý * sau đó là giai đoạn và cam kết lại * – gidmanma

+1

Vâng, nếu bạn đã đến bên với gitignore của bạn, thì đây là giải pháp đúng để làm theo ... khi bạn lên sân khấu và cam kết một lần nữa, tất cả các công cụ bin/obj cam kết trước sẽ bị xóa. Làm việc một điều trị. – davewasthere

5

Tôi biết đó là một câu hỏi cũ, nhưng tôi đã quyết định chia sẻ cách tiếp cận của tôi mà không bao gồm chính xác bin/Debug, bin/phát hành, vv

*/**/bin/Debug 
*/**/bin/Release 
*/**/obj/Debug 
*/**/obj/Release 
4

Chạy lệnh sau đây làm việc cho tôi (nhờ "orourkedd"):

git rm -r . --cached 

tôi tự thêm .gitignore tập tin nhưng nó đã không được xem xét cho đến khi tôi chạy lệnh này.

Sau đó tôi phải cam kết lại và tất cả đều tốt để thực hiện ngay bây giờ. /bin/obj thư mục được loại trừ ngay bây giờ.

0

này làm việc cho tôi:

*.exe 
*.pdb 
*.manifest 
*.cache 

Nếu bạn đang sử dụng GitHub Desktop như tôi đang sử dụng nó, bạn chỉ có thể kích chuột phải vào tập tin bạn muốn loại trừ hoặc phải chuột vào nó và loại trừ bằng cách mở rộng:

enter image description here

Điều này sẽ tự động tạo một tệp .gitignore cho bạn với mã như trên. Bạn có thể tải GitHub Desktop tại đây: GitHub Desktop for Windows 64-bit.

0

Điều này có thể hơi bị tắt chủ đề, nhưng bất cứ khi nào bắt đầu tạo dự án mới, tôi thường sử dụng GitIgnore.IO để tạo tệp gitignore ban đầu và sau đó tôi tweek nó từ đó theo nhu cầu của tôi.

Các vấn đề liên quan