Tôi muốn xem danh sách các tệp được sửa đổi kể từ lần commit cuối cùng, như 'trạng thái git' hiển thị, nhưng tôi chỉ quan tâm đến các tệp nằm trong một thư mục duy nhất. Có cách nào để làm việc này không? Tôi đã thử 'git status <directory>', nhưng có vẻ như điều này làm một cái gì đó hoàn toàn khác (liệt kê tất cả các tập tin đã thay đổi, vì chúng sẽ là nếu tôi viết 'git add <directory>' trước). Tài liệu cho trạng thái git không nói nhiều, ngoài thực tế là nó chấp nhận các tùy chọn tương tự mà git-commit thực hiện (nhưng mục đích của git-commit không hiển thị danh sách các tệp đã thay đổi ...) .trạng thái git - có cách nào chỉ hiển thị thay đổi trong một thư mục cụ thể không?
Trả lời
Từ trong thư mục:
git status .
Bạn có thể sử dụng bất kỳ con đường thực sự, sử dụng cú pháp sau:
git status <directoryPath>
Ví dụ cho thư mục với đường dẫn "/ mát của tôi/path/here"
git status my/cool/path/here
giải pháp đơn giản nhất:
- Tới thư mục
git status | grep -v '\.\.\/'
Tất nhiên điều này loại bỏ màu sắc.
Love it. Không kiểu cách. – redolent
Lý do mà git status
mất các tùy chọn tương tự như git commit
là mục đích của git status
là để hiển thị những gì sẽ xảy ra nếu bạn cam kết với các tùy chọn tương tự như bạn truyền cho git status
. Về mặt này, git status
thực sự là git commit --preview
.
Để có được những gì bạn muốn, bạn có thể làm điều này mà chương trình dàn dựng thay đổi:
git diff --stat --cached -- <directory_of_interest>
và điều này, trong đó cho thấy những thay đổi unstaged:
git diff --stat -- <directory_of_interest>
hoặc này trong đó cho thấy cả hai:
git diff --stat HEAD -- <directory_of_interest>
Điều này một phần hoạt động, mặc dù nó không hiển thị các tệp mới được tạo (không được theo dõi), chẳng hạn như git-status ... –
OK, tôi không chắc bạn cần báo cáo gì. Nếu bạn cần kiểm tra các tập tin chưa được kết nối, hãy thử 'git ls-files --others
'git ls-files -o' hiển thị các tập tin trong các thư mục chưa được sắp xếp đệ quy, trong khi' git status' chỉ hiển thị thư mục cấp cao nhất. Và người ta sẽ phải soạn 'git diff',' git ls-files' và tái tạo tất cả các mã màu vv mà 'git status' cung cấp nếu nó là thay thế cho' git status'. Tôi cũng thực sự muốn thấy một giải pháp cho điều này! –
Là một lưu ý, nếu bạn đơn giản hóa để kiểm tra số liệu thống kê git mà không cần đến thư mục git;
### create file sudo nano /usr/local/bin/gitstat ### put this in #!/usr/bin/env bash dir=$1 if [[ $dir == "" ]]; then echo "Directory is required!" exit fi echo "Git stat for '$dir'." git --git-dir=$dir/.git --work-tree=$dir diff --stat ### give exec perm sudo chmod +x /usr/local/bin/gitstat
Và gọi đoạn mã đơn giản: gitstat /path/to/foo-project
. Bạn cũng có thể sử dụng nó khi đang ở foo-project
chỉ cần thực hiện gitstat .
và giả sử ngắn hơn git status -s
, git diff --stat
hoặc git diff --stat HEAD
nếu bạn luôn sử dụng bảng điều khiển thay vì gui.
Điểm Uy Tín:
- 1. Trạng thái git svn - hiển thị các thay đổi không được cam kết với svn
- 2. các tệp không được theo dõi không được hiển thị trong trạng thái git
- 3. Làm cách nào để hiển thị nội dung của tệp ở trạng thái cụ thể của repo git?
- 4. Làm cho trạng thái git hiển thị các tệp được theo dõi chưa sửa đổi/không thay đổi?
- 5. Trạng thái git -> Hiển thị các tệp sẽ được thêm (dàn dựng) trong các thư mục con
- 6. các tệp không có sẵn và git unstaged hiển thị trạng thái khác nhau
- 7. Hiển thị đổi tên trong trạng thái hg?
- 8. .gitignore hiển thị khi tôi chạy trạng thái git
- 9. Tại sao "trạng thái hg" hiển thị các tệp đã thay đổi khi "hg diff -g" không? (Một phụ huynh)
- 10. Ngăn chặn "trạng thái hg" hiển thị mọi thứ trong các thư mục không được theo dõi
- 11. Trạng thái hiển thị thay đổi knockout.js dựa trên nếu mảng trống hoặc không
- 12. Cách hiển thị trạng thái "Đang tải" trong Android?
- 13. Làm cách nào để hiển thị một số thay đổi cụ thể trong p4v?
- 14. Làm cách nào để thêm trạng thái tệp git vào trạng thái của vim?
- 15. Trạng thái Git hiển thị tệp không được theo dõi ở cấp cao hơn?
- 16. Làm thế nào tôi có thể hiển thị thư mục .git trong Netbeans
- 17. trạng thái git cho tôi lỗi: tệp chỉ mục không hợp lệ chữ ký sha1
- 18. hiển thị thông báo trạng thái trong R
- 19. Git chỉ tìm một thư mục
- 20. Tôi có thể tạo trạng thái có thể thay đổi bên trong bản ghi Clojure không?
- 21. Trạng thái Asynctask luôn hiển thị chạy
- 22. Tại sao "trạng thái git" không hiển thị các cam kết chưa được xóa trong nhánh?
- 23. Xem sự thay đổi trạng thái địa chỉ IP
- 24. Cách phát hiện trạng thái hiện tại trong chỉ thị
- 25. git svn clone ngoại trừ một thư mục cụ thể
- 26. Tôi có thể sao chép .git sang một thư mục khác không?
- 27. Không thể hiển thị các mục có thư viện AppCompat
- 28. Làm cách nào để chạy nhật ký git chỉ xem các thay đổi cho một chi nhánh cụ thể?
- 29. Nhật ký Git không hiển thị thay đổi submodule
- 30. Trạng thái git mất quá nhiều thời gian trên một thư mục dùng chung trên virtualbox
Cảm ơn! Ngoài ra, 'git status' dường như đang làm những gì tôi mong đợi - Tôi thành thật không nhớ vấn đề tôi đã có với nó trước đây ... có thể đó là vấn đề của một phiên bản git khác, dunno. –
Không vấn đề gì, và có thể - các phiên bản mới hơn của git dường như làm mọi thứ dễ dàng hơn. –
Đúng, hành vi chắc chắn đã thay đổi từ 1,6 đến 1,7. Nó đáp ứng các yêu cầu OP trong 1,7 nhưng 1,6 tiếp tục trên toàn bộ repo. – colgur