2010-05-11 28 views
17

Sự khác nhau giữa hai lệnh này là gì?Hiệu ứng của git commit không có tùy chọn -a là gì?

git commit -m "added a new page" 

git commit -a -m "added a new page" 

Tôi biết rằng tùy chọn -a sẽ sân khấu file đã được sửa đổi và xóa, nhưng sau đó những gì chạy nó mà không có sự -a nghĩa là gì?

Trả lời

27

Bạn phải rõ ràng thay đổi giai đoạn cho cam kết bằng cách sử dụng git add hoặc git rm.

Nếu bạn sử dụng -a cờ khi thực hiện một cam kết, git sẽ tự động giai đoạn bất kỳ tập tin sửa đổi và loại bỏ mà không cần phải đến giai đoạn họ một cách rõ ràng bằng add hoặc rm vv

Nếu bạn không định -a, bất kỳ tệp nào đã được sửa đổi hoặc xóa, nhưng không được dàn dựng rõ ràng bằng cách sử dụng git add hoặc git rm sẽ bị bỏ qua trong cam kết.

cập nhật

Như TS Gianluigi Zane Zanettini nói - -a không thêm tập tin mới vào chỉ mục, vì vậy nếu bạn có tập tin hoàn toàn mới, bạn không nên mong đợi -a để quảng cáo cho họ.

http://www.kernel.org/pub/software/scm/git/docs/git-commit.html

+0

Cảm ơn sự giúp đỡ của bạn! – ben

+0

@ben bạn được chào đón. –

+2

Một lưu ý nhỏ: '-a' chỉ hoạt động đối với các tệp đã sửa đổi/xóa. Mỗi tài liệu git, các tệp mới không bị ảnh hưởng: 'nhưng các tệp mới mà bạn chưa nói với Git sẽ không bị ảnh hưởng.' => Sẽ tốt hơn nếu' git add'' thay vì 'git commit -a'. –

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