2014-07-22 10 views

Trả lời

10

Như đã đề cập trong "Is there a way to use wildcards with git checkout?"

Git không đối phó với các ký tự đại diện, nhưng vỏ của bạn không.

noted below, bạn cần phải thoát ký tự đại diện để git diễn giải nó: afile\* hoặc sử dụng dấu ngoặc đơn giản.

Các example section of git checkout cho thấy một cách sử dụng ký tự đại diện:

rm hello.c 
git checkout -- '*.c' 

Lưu ý các dấu ngoặc kép quanh *.c.
Các tập tin hello.c cũng sẽ được kiểm tra, mặc dù nó không còn trong cây làm việc, bởi vì các tập tin globbing được sử dụng để phù hợp với các mục trong chỉ mục (không phải trong cây làm việc của vỏ).

Một thay thế, ví dụ, sẽ sử dụng find (như trong "git add *.js” did not add the files in sub-directories")

find . -name '*js' -exec git checkout {} \; 

Bạn có thể thử regex của bạn với find --regex

+0

câu trả lời tuyệt vời, tôi có thể thấy nó giải quyết các vấn đề khác trên đường ... – user2167582

+0

git bây giờ hỗ trợ regex khi thanh toán, xem bên dưới. – Ezra

+0

@Ezra Cảm ơn bạn. Tôi đã sửa đổi câu trả lời cho phù hợp. – VonC

6

Chỉ cần cập nhật câu trả lời này nhưng tôi đã có thể đến git checkout với ký tự đại diện để tôi tin rằng điều này là có thể ngay bây giờ. Tôi đang chạy phiên bản git 1.9.3.

+5

Lưu ý rằng dấu hoa thị phải được thoát, tuy nhiên: 'git checkout foo \ *' –

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