Bạn có thể sử dụng git add --patch <filename>
(hoặc -p
viết tắt) và git sẽ bắt đầu chia nhỏ tệp của bạn thành những gì nó cho là "hunk" hợp lý (các phần của tệp). Sau đó nó sẽ nhắc bạn với câu hỏi này:
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?
Dưới đây là mô tả của từng tùy chọn:
- y giai đoạn hunk này cho cam kết tiếp theo
- n không tạo ra hunk này cho lần cam kết tiếp theo
- qbỏ việc; không giai đoạn hunk này hoặc bất kỳ hunk còn lại
- a giai đoạn hunk này và tất cả các hunk sau này trong tập tin
- d không giai đoạn hunk này hoặc bất kỳ hunk sau này trong tập tin
- g chọn một hunk để đi đến
- / tìm kiếm một hunk phù hợp với regex đã cho
- j rời khỏi hunk này chưa quyết định, xem hunk chưa quyết định tiếp theo
- J rời khỏi hunk này chưa quyết định, xem hunk tiếp theo
- k rời khỏi hunk này chưa quyết định, xem hunk chưa quyết định trước
- K rời khỏi hunk này chưa quyết định, xem hunk trước
- s chia hunk hiện tại thành hunk nhỏ hơn
- e tự chỉnh sửa hunk hiện tại
- ? in hunk giúp
Nếu tệp chưa có trong kho lưu trữ, trước tiên bạn có thể làm git add -N <filename>
. Sau đó bạn có thể tiếp tục với git add -p <filename>
.
Sau đó, bạn có thể sử dụng:
git diff --staged
để kiểm tra xem bạn đã dàn dựng các thay đổi chính xác chưa
git reset -p
để unstage nhầm hunk thêm
git commit -v
để xem cam kết của bạn trong khi bạn chỉnh sửa thông điệp cam kết.
Lưu ý rằng điều này khác xa so với git format-patch
lệnh, mục đích của nó là phân tích dữ liệu cam kết vào một .patch
tệp.
Tham khảo cho tương lai: Công cụ Git - Dàn dựng tương tác