2009-03-11 30 views
6

tôi loại bỏ 777 file đó là trong ngành newFeature Git bằng cáchKhông thể gỡ bỏ nhanh chóng nhiều file trong Git

rm !(example) 

Tôi muốn cam kết. Git hỏi tôi để tự loại bỏ mỗi tập tin bị loại bỏ bởi

git rm file 

Nó sẽ mất rất nhiều thời gian để viết lệnh trên cho tất cả 777 tập tin mà không cần dùng tên tương tự.

Làm cách nào để xóa 777 tệp này trong chi nhánh Git newFeature? Tôi muốn giữ chúng như một bản sao lưu để sử dụng sau này, nhưng bây giờ, tôi muốn không có chúng.

Trả lời

19
git add -u 

Nó sẽ "git xóa" tất cả các tệp bạn đã xóa.

Từ Git add:

u
--update

Cập nhật chỉ file git rằng đã biết về, dàn dựng nội dung sửa đổi cho cam kết và đánh dấu xóa tập tin gỡ bỏ.
Điều này tương tự như "git commit -a" để chuẩn bị thực hiện cam kết, ngoại trừ việc cập nhật được giới hạn cho các đường dẫn được chỉ định trên dòng lệnh.
Nếu không có đường dẫn nào được chỉ định, tất cả các tệp được theo dõi trong thư mục hiện tại và các thư mục con của nó được cập nhật.


Các "hệ thống ống nước cách" là thực sự một số loại script one-line

for i in ` git st | grep deleted | awk ‘{print $3}’ ` ; do git rm $i; done 

hoặc cho Windows hộp với GnuWin32

git st | grep deleted | gawk "{print \"git rm \"$3}" | cmd 

Nhưng git add -u là sứ cách chính để làm điều đó.

+0

Điều này thật khéo léo. Tôi biết đó là thực tế xấu để được khối lượng xóa hoặc thêm các tập tin git nhưng khi bạn di chuyển thư mục xung quanh lệnh này là rất quan trọng. Quan trọng. – davidahines

+0

nhưng vẫn rất hữu ích nếu bạn biết những gì bạn đang làm, ví dụ git -u app/assets/images, để cập nhật hàng loạt xóa hình ảnh trong dự án đường ray – Alexis

1

Tôi thích ... trạng thái git | grep đã xóa | cut -f2 -d: | xargs git rm

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