Nếu bạn chỉ muốn một đồng bằng “Có sự khác biệt từ HEAD?”:
git diff-index --quiet HEAD
Nếu mã thoát là 0, sau đó không có sự khác biệt.
Nếu bạn muốn “gì các file đã thay đổi từ HEAD?”:
git diff-index --name-only HEAD
Nếu bạn muốn “gì các file đã thay đổi từ HEAD, và trong những cách đã họ đã thay đổi (thêm, xóa, thay đổi)? “:
git diff-index --name-status HEAD
Thêm -M
(và -C
) nếu bạn muốn đổi tên (và sao chép) phát hiện.
Các lệnh này sẽ kiểm tra cả nội dung theo giai đoạn (những gì có trong chỉ mục) và các tệp trong cây đang hoạt động. Các giải pháp thay thế như git ls-files -m
sẽ chỉ kiểm tra cây đang hoạt động chống lại chỉ mục (nghĩa là chúng sẽ bỏ qua bất kỳ nội dung nào được tổ chức (nhưng không được cam kết) cũng nằm trong cây đang hoạt động).
Nguồn
2010-10-10 06:53:49
Nếu bạn chỉ quan tâm để biết liệu một cái gì đó đã thay đổi (không nào đã thay đổi) xem [Làm thế nào để lập trình xác định xem có sự thay đổi uncommited ?] (http://stackoverflow.com/q/3878624/193688) –