Tôi muốn lấy danh sách các tệp từ kho lưu trữ git đã được sửa đổi hoặc được tạo trong một phạm vi cam kết. Điều này có thể không? Tôi đã nhìn vào log
nhưng nó dường như không đạt được điều này.Làm cách nào để có danh sách tệp duy nhất được sửa đổi trong kho lưu trữ trong phạm vi các cam kết trong Git?
Trả lời
git diff --name-only ${range}
sẽ cung cấp cho bạn chính xác những gì bạn muốn: chỉ có tên của các tệp được sửa đổi trong thời gian này.
Thực ra, nó cung cấp cho bạn hầu như những gì bạn yêu cầu: điều này sẽ bao gồm các tệp đã bị xóa hoàn toàn, không chỉ các tệp đã sửa đổi. Nó cũng sẽ bỏ lỡ các tập tin đã được tạo ra, sau đó loại bỏ, trong phạm vi.
Để có được bức tranh hoàn chỉnh, bạn có thể muốn đi bộ phạm vi và sau đó uniq kết quả; sử dụng git log
để nhận phạm vi cam kết, sau đó phân biệt mỗi lần commit với phụ huynh.
git diff --stat SHAstart..SHAend
sẽ cung cấp cho bạn một danh sách các tập tin đã thay đổi giữa SHAIDs SHAstart và SHAend
git diff --name-only --diff-filter=AM <REV1>..<REV2>
này sẽ cung cấp một danh sách các file (--name-only
) sửa đổi hoặc bổ sung (--diff-filter=AM
) trong tất cả các cam kết thể truy cập sau và trước (<REV1>..<REV2>
) ở đâu và là một sửa đổi trong git.
Để biết thêm thông tin về cách xác định các phiên bản và phạm vi xem trang này: http://schacon.github.com/git/git-rev-parse.html
Để biết thêm thông tin về các tùy chọn khác và đặc biệt là --diff-filter
tùy chọn xem: http://linux.die.net/man/1/git-diff
- 1. Làm cách nào để tìm các cam kết mới nhất trong một kho lưu trữ git?
- 2. Làm cách nào để đẩy cam kết sửa đổi vào kho lưu trữ Git từ xa?
- 3. Lưu trữ Git của kho lưu trữ với các thay đổi không được cam kết
- 4. Làm cách nào để tìm thấy cam kết git gần đây nhất đã sửa đổi tệp?
- 5. Làm cách nào để có được TortoiseSVN để nhận danh sách các tệp không có trong kho lưu trữ?
- 6. Tìm các cam kết sửa đổi tên tệp khớp với mẫu trong kho GIT
- 7. git: đẩy một cam kết duy nhất
- 8. Vi rút trong kho lưu trữ Subversion, phải làm gì?
- 9. Làm cách nào để tìm kiếm các commit git trong kho lưu trữ bằng tin nhắn cam kết?
- 10. Làm cách nào để bỏ qua các tệp trong kho lưu trữ?
- 11. Cách sửa đổi cài đặt kho lưu trữ trong Redmine?
- 12. diff git duy nhất để hợp nhất cam kết
- 13. Làm thế nào để trở lại một con trỏ Submodule Git đến cam kết được lưu trữ trong kho chứa?
- 14. Git truy xuất danh sách tất cả các tệp đã được sửa đổi trong chi nhánh
- 15. Làm cách nào để tải xuống cam kết git cụ thể từ kho lưu trữ?
- 16. git khi thay đổi kho lưu trữ
- 17. Trong phát triển Android, những tệp nào cần được cam kết với một kho lưu trữ?
- 18. Làm thế nào để có được ngày cam kết cuối cùng cho một loạt các tập tin trong Git?
- 19. Làm cách nào để tải lên các thay đổi đã cam kết đối với kho lưu trữ GitHub của tôi?
- 20. Làm cách nào để có được jenkins để xây dựng mọi sửa đổi của kho lưu trữ lật đổ
- 21. Lấy danh sách các cam kết cùng với thông báo cam kết và băm trong Git
- 22. Bỏ qua các tệp đã sửa đổi (nhưng không được cam kết) trong git?
- 23. Cách xóa tất cả các tệp trong kho lưu trữ Git không nằm trong thư mục làm việc?
- 24. Làm thế nào để bước qua kho lưu trữ git?
- 25. chỉnh sửa tệp trong tất cả các cam kết trong git
- 26. Làm cách nào để có danh sách các tệp đã thay đổi trong svn?
- 27. cách xóa tệp trong kho lưu trữ từ xa?
- 28. Làm thế nào để bạn nhận được danh sách các thay đổi từ kho lưu trữ Subversion theo phạm vi ngày?
- 29. Lưu một danh sách các Strings duy nhất trong ArrayList
- 30. Cách đặt lại kho lưu trữ GIT từ xa để xóa tất cả các cam kết?
Mặc dù diff không chấp nhận dãy ('commit..commit ') cú pháp tự nhiên hơn là hai đối số,' git diff [opts] commit1 commit2', làm cho nó rõ ràng nó cho bạn thấy sự khác biệt giữa hai, không làm bất cứ điều gì với các cam kết giữa. – Cascabel