Tôi cam kết có chọn lọc các phần của một tệp lớn và tôi muốn xem thêm ngữ cảnh xung quanh mỗi phần. Điều này có khả thi không?
Tôi cam kết có chọn lọc các phần của một tệp lớn và tôi muốn xem thêm ngữ cảnh xung quanh mỗi phần. Điều này có khả thi không?
Câu trả lời:
Câu trả lời ngắn gọn: không.
git diff
có -U<n>
tùy chọn cho phép bạn tùy chỉnh số dòng hiển thị xung quanh một thay đổi. Ví dụ, git diff -U5 ...
sẽ hiển thị 5 dòng ngữ cảnh. Theo như tôi có thể nói, không có tùy chọn như vậy có sẵn cho màn hình khác biệt trong chế độ tương tác.
git diff -U<n>
được sử dụng ở cả hai bên của mỗi dòng đã thay đổi. Vì vậy, nếu bạn đã một dòng thay đổi, git diff -U5
sẽ cho bạn thấy 11 dòng (giả sử một trong những dòng không phải là lúc bắt đầu của sự kết thúc của tập tin.)
git diff
không dành cho git add --patch
hoặcgit add --interactive
Để xác nhận, điều này vẫn chưa thể thực hiện được vào năm 2019.
Một công cụ bên ngoài như jjlee/git-meld-index
có thể giúp:
git-meld-index
chạymeld
- hoặc bất kỳ difftool git khác (kdiff3
,diffuse
, vv) - cho phép bạn thay đổi sân khấu tương tác với các chỉ số git (còn gọi là khu vực dàn git).
Điều này tương tự như chức năng của git add -p
, và git add --interactive
.
Trong một số trường hợp, meld dễ sử dụng / nhanh hơn
git add -p
hoặc tính năng dàn dựng trong các công cụ nhưgit gui
.
Đó là bởi vì meld cho phép bạn, ví dụ, để:
- xem thêm ngữ cảnh ,
- xem khác biệt nội bộ
- chỉnh sửa bằng tay và xem các cập nhật khác biệt 'trực tiếp' (cập nhật sau mỗi lần nhấn phím)
- điều hướng đến một thay đổi mà không nói '
n
' với mọi thay đổi bạn muốn bỏ qua
-U<infinity>
tùy chọn nào để hiển thị toàn bộ tệp không? (Hoặc là một số lượng lớn "đủ tốt"?)