2015-07-28 16 views
5

trong khi trong lệnh git add, tôi sử dụng .* để thêm tất cả các tệp trong thư mục hoạt động.Sự khác biệt giữa. và * trong "git add"?

Sự khác nhau giữa chúng là gì?

+2

Nếu bạn thực sự muốn thấy sự khác biệt mà không thay đổi bất cứ điều gì, hãy thử 'git add -nv' để chạy khô với tùy chọn tiết. – legends2k

Trả lời

6

Cả trong số này là git khái niệm:

. là một biểu tượng của thư mục làm việc hiện tại . Vì vậy, nếu bạn nói, ví dụ: git add ., bạn thực sự muốn nói "git, vui lòng thêm thư mục làm việc hiện tại vào khu vực dàn dựng cho thay đổi hiện tại của tôi". Hầu hết các lệnh khác xử lý . cùng một cách: cd . sẽ di chuyển bạn không nơi nào.

*, mặt khác, là quả cầu vỏ . Quả cầu đặc biệt này được chuyển thành "tất cả các tệp". Vì vậy, khi bạn nói git add *, điều đầu tiên xảy ra là vỏ của bạn (chương trình bạn đang nhập lệnh vào) mở rộng nó thành mọi tệp và thư mục ở vị trí hiện tại của bạn, sau đó git được danh sách. Vì vậy, lệnh git thậm chí không thấy * chút nào - nó chỉ thấy rằng bạn muốn add mọi thứ trong thư mục làm việc hiện tại của mình.

Hiệu ứng ròng về cơ bản giống nhau: mọi thứ trong thư mục làm việc được thêm vào. Cách nó xảy ra, mặc dù, là hoàn toàn khác nhau. git add . có lẽ là những gì bạn muốn làm - những gì nó làm dưới mui xe là gần với ý định của bạn.

+0

sử dụng "git add \ *" có thể dẫn đến sự cố nếu bạn có số lượng tệp lớn. Nó có thể xảy ra, rằng "\ *" được chi tiêu trong một chuỗi rất lớn và độ dài của chuỗi này có thể vượt quá bộ đệm vỏ cho các lệnh. Do đó, lệnh có thể bị cắt bớt (rất có thể là cắt tên tệp). Do đó, lệnh có thể thất bại nếu bạn sử dụng "*". –

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