Cập nhật: dưới dạng mentioned below bởi toupeira, bạn có thể sử dụng tùy chọn --porcelain
git status (vì cam kết 6f15787, tháng 9 năm 2009, git 1.7.0).
tôi đã đề cập trong câu trả lời của tôi "What does the term porcelain mean in Git?" rằng:
Có lẽ ý nghĩa của --porcelain
ở đây là "sản xuất ra phù hợp cho tiêu thụ bởi các kịch bản sứ"
Tuy nhiên, đó sẽ không hiển thị thông tin trước/sau: xem "What to add to “git status --porcelain” to make it behave like “git status”?": cho rằng, bạn vẫn cần phải sử dụng các lệnh khác: xem "How to know if git repository has changes that have not been synchronized with server?"
câu trả lời ban đầu Tháng Ba 2009
Trong lệnh sứ, a:
$ git diff HEAD
mang đến cho bạn những thay đổi kể từ khi cam kết cuối cùng (những gì bạn sẽ được cam kết nếu bạn chạy "git commit -a") .
Một tương đương có thể trong lệnh hệ thống ống nước sẽ là:
$ git ls-files -m
niêm yết tất cả các sửa đổi (làm việc thư mục hoặc chỉ mục) tập tin
Nếu bạn tạo kho lưu trữ của bạn bằng cách nhân bản kho lưu trữ của người khác, các chi nhánh "master" từ xa được sao chép vào một nhánh địa phương có tên là "origin". Bạn nhận được nhánh "master" của riêng bạn mà không bị ràng buộc với kho lưu trữ từ xa.
Luôn có đầu hiện tại, được gọi là HEAD. (Điều này thực sự là một liên kết tượng trưng, .git/HEAD, vào một tập tin như refs/con/chủ.)
chạy "tình trạng git" và phân tích kết quả:
# On branch master
# Your branch is ahead of 'origin/master' by 11 commits.
#
Xem thêm chi tiết trong SO câu hỏi "Why is Git telling me “Your branch is ahead of ‘origin/master’ by 11 commits.” and how do I get it to stop?"
có thể tương đương trong lệnh hệ thống ống nước:
* git-for-each-ref
niêm yết tất cả các cam kết, nhưng đòi hỏi phải phân tích đầu ra cũng ...
Một lần nữa, git ls-files could be used to produced the same result than a git status.
git ls-files --exclude-per-directory=.gitignore --exclude-from=.git/info/exclude \
--others \
--modified \
-t
Tuyệt vời. Cảm ơn rất nhiều. –
"git ls-files --exclude-standard ..." sẽ đơn giản hơn một chút. –