2012-02-04 24 views
8

Tôi muốn làm một cái gì đó như git add *.java và không để cho nó ném lên chỉ vì một trong những tập tin phù hợp với .gitignore.Với git, làm thế nào tôi có thể thực hiện một git thêm và vẫn còn có nó bỏ qua các mẫu trong .gitignore?

Ví dụ: Trong thư mục của tôi, tôi có

ignored.java 
something.java 
somethingelse.java 
somethingevenmoreelse.java. 

nơi ba tác phẩm cuối cùng được tạo ra bởi chỉ tôi. Sau đó tôi muốn làm git add *.java

và yêu cầu thêm ba tệp đó. Nói cách khác, thay vì cho tôi

The following paths are ignored by one of your .gitignore files: 
ignored.java 
Use -f if you really want to add them. 
fatal: no files added 

... Tôi thà bỏ qua tệp .gitignored và thêm phần còn lại.

+0

Sử dụng zsh và khám phá sức mạnh thực sự hoàn thành tab! – Simon

+0

Giải thích xin vui lòng, @Simon? –

+0

Trong zsh, nếu bạn gõ 'git add s * .java' và nhấn tab, nó sẽ tự động hoàn thành ba tệp .java bắt đầu bằng' s'. Ngoài ra nếu bạn chỉ cần gõ 'git add' và nhấn tab, nó sẽ chỉ hoàn thành các tập tin chưa được kết thúc. – Simon

Trả lời

11

Nếu bạn trích dẫn mẫu glob thì nó sẽ được git thay vì vỏ và nó sẽ bỏ qua các tệp bị bỏ qua trước khi thêm phần còn lại mà không có lỗi.

git add '*.java' 

cách khác:

git add \*.java 
+1

Điều này chắc chắn là con đường đúng đắn để đi. Git sẽ giải thích các mẫu glob trong tên tập tin args, và nó sẽ áp dụng các mẫu gitignore nếu thích hợp mà không có lỗi. Lỗi đã được ném là vì bạn đã chuyển một cách rõ ràng tệp bị bỏ qua tới 'git add' và nó nghĩ bạn phải làm điều gì đó mà bạn không có ý định. –

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