Thỉnh thoảng khi tôi chuẩn bị thực hiện một cam kết, tôi không thể nhớ chính xác những gì đã thay đổi kể từ lần commit cuối cùng. Làm cách nào tôi có thể thấy sự khác biệt về trạng thái hiện tại của mã và lần commit cuối cùng?Xem khác biệt giữa trạng thái hiện tại và lần commit cuối cùng
Trả lời
Nếu bạn chưa thêm bất kỳ tập tin để chỉ số chưa (với git add
), chỉ cần làm
git diff
này sẽ hiển thị diff giữa cây làm việc của bạn và chỉ mục.
Nếu bạn đã thêm tệp vào chỉ mục, bạn cần thực hiện việc này để hiển thị sự khác biệt giữa chỉ mục và lần commit cuối cùng (HEAD).
git diff --cached
Cuối cùng, nếu bạn muốn xem các thay đổi được thực hiện trong cây làm việc so với các mới nhất cam kết (HEAD
) bạn có thể (như Carlos chỉ ra) làm
git diff HEAD
Những thay đổi này là sự kết hợp của git diff
và git diff --cached
.
Bạn yêu cầu git phân biệt cam kết hiện tại/lần cuối, có ký hiệu viết tắt là HEAD
.
Vì vậy, git diff HEAD
sẽ so sánh trạng thái hiện tại của bảng tính với cam kết hiện tại.
điều này cũng cho thấy sự khác biệt và những tệp nào đã được thay đổi/sửa đổi.
$ git Status
Hiển thị đường dẫn có sự khác biệt giữa các tập tin chỉ mục và các HEAD hiện cam kết, đường dẫn có sự khác nhau giữa cây làm việc và tập tin chỉ mục, và các đường dẫn trong cây làm việc mà không được theo dõi bởi git (và là không bị bỏ qua bởi gitignore (5)). Đầu tiên là những gì bạn sẽ cam kết bằng cách chạy lệnh git commit; thứ hai và thứ ba là những gì bạn có thể cam kết bằng cách chạy git add trước khi chạy git commit.
https://www.kernel.org/pub/software/scm/git/docs/git-status.html
Nếu bạn vừa thực hiện một cam kết, hoặc muốn xem những gì đã thay đổi trong cam kết cuối cùng so với tình trạng hiện tại (giả sử bạn có một cây làm việc sạch sẽ), bạn có thể sử dụng:
git diff HEAD^
Điều này sẽ so sánh HEAD với cam kết ngay trước đó. Một người cũng có thể làm
git diff HEAD^^
để so sánh với trạng thái chơi 2 cam kết trước đây. Để xem diff giữa nhà nước hiện hành và một số cam kết, chỉ đơn giản là làm:
git diff b6af6qc
đâu b6af6qc
là một ví dụ về một cam kết băm.
- 1. Git hoàn tác lần commit cuối cùng
- 2. Đuôi trạng thái (chỉ hiển thị các dòng mới từ lần thực hiện cuối cùng)
- 3. Sự khác nhau giữa cột 'trạng thái' và 'trạng thái' trong bảng sales_flat_order trong Magento
- 4. SQLAlchemy: Sự khác biệt giữa flush() và commit() là gì?
- 5. Jenkins - Nhận trạng thái xây dựng hoàn thành lần cuối
- 6. Sự khác biệt giữa mã trạng thái phản hồi http 402 và 403
- 7. Sự khác biệt giữa Mealy và Moore
- 8. trạng thái git - liệt kê ngày sửa đổi cuối cùng
- 9. Sự khác biệt giữa MapReduce và YARN hiện tại (MRv2)
- 10. Trạng thái hiện tại của Mono trên Linux?
- 11. Có ai biết trạng thái hiện tại của Graphics32 không?
- 12. Trạng thái hiện tại của PocoCapsule là gì?
- 13. DownloadManager.ACTION_DOWNLOAD_COMPLETE phát sóng thu nhận cùng tải id nhiều hơn một lần với trạng thái tải khác nhau trong Android
- 14. Sự khác biệt giữa viewbag và viewstate?
- 15. Duy trì trạng thái cuối cùng ở cuối hoạt ảnh CSS3
- 16. Sự khác biệt giữa cuối cùng và viết sau khi bắt
- 17. Đặt lại tất cả thay đổi sau lần commit cuối cùng trong git
- 18. Cách phát hiện trạng thái hiện tại trong chỉ thị
- 19. Vim tìm thấy lần xuất hiện cuối cùng của
- 20. git: Làm cách nào để di chuyển N lần commit cuối cùng được thực hiện thành master, thành nhánh riêng?
- 21. thay đổi các biến cuối cùng thông qua sự phản ánh, tại sao sự khác biệt giữa biến cuối cùng tĩnh và không tĩnh
- 22. Làm cách nào để xem 10 lần commit cuối cùng theo thứ tự đảo ngược với SVN?
- 23. IntelliJ: Xem khác biệt của tất cả các tập tin đã thay đổi giữa local và git commit/branch
- 24. Git: Cách di chuyển thay đổi kể từ lần commit cuối cùng đến chi nhánh mới
- 25. Cuộn lên trên cùng khi nhấn vào thanh trạng thái
- 26. Sự khác biệt giữa $ * và $ @
- 27. Mã trạng thái vỏ trong thực hiện
- 28. Sự khác biệt giữa AForge và OpenCV
- 29. sự khác biệt giữa query.list và query.iterate
- 30. sự khác biệt giữa HttpResponseException và HttpException
'git diff' so sánh worktree với chỉ mục chứ không phải HEAD. –
@ CarlosMartínNieto Bạn là đúng, thưa bạn. Tôi đã cải thiện bài đăng của mình để phản ánh điều này. –
Tôi chạy nó, nhưng thiết bị đầu cuối, không kết thúc, làm thế nào tôi có thể thoát. không có gì hiệu quả. –