2009-11-30 29 views
80

Tôi muốn dừng Git hiển thị các tập tin bị bỏ qua trong git status, vì có rất nhiều tài liệu và tập tin cấu hình trong danh sách Đã thay đổi nhưng không được cập nhật files.Giữ các tập tin bị bỏ qua trong trạng thái git

Git có hiển thị những tệp này không?

tôi đặt các thông tin bỏ qua trong một file .gitignore trong thư mục gốc của kho Git và họ không được thêm vào khi sử dụng git add . nhưng có vẻ như họ đang không hoàn toàn bỏ qua một trong hai, khi họ xuất hiện trong danh sách nói trên và không hiển thị trong danh sách được in bởi git ls-files --others -i --exclude-standard. Chỉ các tệp phù hợp với các mẫu trong ~/.gitignore mới hiển thị ở đó.

Có thể vì ở giai đoạn trước tôi không bỏ qua chúng và do đó chúng được cam kết ít nhất một lần?

Trả lời

138

Khi tôi tìm thấy in this post, .gitignore chỉ hoạt động đối với các tệp không được theo dõi. Nếu bạn thêm tập tin vào kho lưu trữ, bạn có thể:

git update-index --assume-unchanged <file> 

hoặc loại bỏ chúng khỏi kho lưu trữ bởi

git rm --cached <file> 

Sửa

This article giải thích rằng quá

+0

'git update-index --assume-không đổi ' không hoạt động (đã thử điều đó), nhưng 'git rm --cached ' đã thực hiện công việc. Cảm ơn! – knuton

+2

cập nhật-chỉ số làm việc cho tôi. Vấn đề tương tự, nơi trạng thái git đang hiển thị các tập tin bị bỏ qua ... rất khó chịu. +1 –

+1

Tôi vẫn gặp sự cố này. Cả hai lệnh trên không hiệu quả với tôi. Trong cả hai trường hợp, git nói rằng nó không có kiến ​​thức về các tệp được đề cập nhưng chúng vẫn hiển thị trong trạng thái git: ( – Cfreak

0

Từ man git-lsfiles:

-i, --ignored 
Show ignored files in the output. Note that this also reverses any exclude list present. 

Cá nhân tôi có xu hướng giữ doxygen tập tin trong cây nguồn của tôi, vì vậy tôi chỉ cần thêm này để .gitignore của tôi (đó là trong thư mục trên cùng của nguồn của tôi cây):

docs/* 

Hy vọng điều đó sẽ hữu ích.

0

như thế này

git --ignored myfolder 

Và sẽ hiển thị tình trạng chỉ cho Myfolder

8

Tôi đã có vấn đề này đưa ra là tốt, nó có thể là vì bạn đã thêm thư mục bị bỏ qua của bạn/tập tin để .gitignore sau khi họ đã được đánh dấu là "để được theo dõi" bởi GIT trong luồng cam kết ban đầu.

Vì vậy, bạn cần phải xóa bộ nhớ cache theo dõi git như vậy:

git rm --cached -r [folder/file name]

Một lời giải thích chi tiết hơn có thể được đọc ở đây: http://www.frontendjunkie.com/2014/12/stop-git-from-tracking-changes-to.html

Các lệnh trên cũng loại bỏ các tàn dư của các thư mục/tệp từ nguồn gốc GIT từ xa của bạn. Vì vậy, repo GIT của bạn trở nên sạch sẽ.

-1

Điều này chắc chắn làm việc,

git rm --cached -r [folder/file name]

0

Tôi giả sử bạn muốn không thêm tmp thư mục (Visual Studio vBulletin)

1- thêm dòng dưới đây để tập .gitignore địa phương của bạn

## ignore tmp 
/tmp/ 
./tmp/ 

3- sao lưu và xóa tmp Thư mục cục bộ. (Sao lưu ở một nơi khác. Ví dụ như máy tính để bàn?)

4- Cam kết thay đổi cục bộ so với đồng bộ hóa với từ xa (ví dụ: github).

Sau các bước này, thư mục tmp của bạn sẽ không được tải lên lại.

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