Bắt đầu với git
v1.7.11, bạn có thể sử dụng git difftool --dir-diff
để thực hiện một thư mục khác.
Ví dụ, tính năng này hoạt động tốt với Meld 3.14.2 và cho phép bạn duyệt tất cả các tệp đã sửa đổi:
git difftool --dir-diff --tool=meld HEAD~ HEAD
Đây là một hàm Bash tiện dụng:
git-diff-meld() (
git difftool --dir-diff --tool=meld "${1:-HEAD~}" "${2:-HEAD}"
)
Câu trả lời sau đây áp dụng cho các git
cài đặt cũ hơn v1.7.11.
Câu hỏi tương tự đã được hỏi trên danh sách thư git .
Tôi kết hợp một tập lệnh shell dựa trên chuỗi email đó thực hiện một thư mục khác nhau giữa các lần xác nhận tùy ý.
Bắt đầu với git v1.7.10, git-diffall
tập lệnh được bao gồm trong contrib
cài đặt git tiêu chuẩn.
Đối với các phiên bản trước v1.7.10, bạn có thể cài đặt từ git-diffall
dự án trên GitHub .
Dưới đây là mô tả dự án:
Kịch bản git-diffall cung cấp một cơ chế khác biệt dựa trên thư mục cho git. Kịch bản dựa trên tùy chọn cấu hình diff.tool để xác định xem trình xem diff được sử dụng.
Tập lệnh này tương thích với tất cả các biểu mẫu được sử dụng để chỉ định một phạm vi sửa đổi cho diff:
1) git diffall
: hiển thị khác nhau giữa cây làm việc và thay đổi theo giai đoạn
2) git diffall --cached [<commit>]
: hiển thị khác nhau giữa các thay đổi theo giai đoạn và HEAD
(hoặc cam kết có tên khác)
3) git diffall <commit>
: hiển thị khác nhau giữa cây làm việc và cam kết có tên
4) git diffall <commit> <commit>
: hiển thị khác biệt giữa hai cam kết có tên
5) git diffall <commit>..<commit>
: giống nhau như trên
6) git diffall <commit>...<commit>
: hiển thị các thay đổi trên nhánh chứa và lên đến lần thứ hai, bắt đầu từ một tổ tiên chung của cả hai<commit>
Lưu ý: tất cả các hình thức có một giới hạn đường dẫn tùy chọn [--] [<path>]
Kịch bản này dựa trên một ví dụ được cung cấp bởi Thomas Rast trong danh sách Git .