Bạn có các tùy chọn khác nhau dựa trên những gì bạn muốn đạt được:
Nếu bạn muốn nội dung của tệp giống như trên nhánh đích, bạn có thể sử dụng git checkout <branch> -- <filename>
. Tuy nhiên, điều này sẽ không "chọn anh đào" những thay đổi đã xảy ra trong một cam kết duy nhất, mà chỉ lấy trạng thái kết quả của tệp đã nói. Vì vậy, nếu bạn đã thêm một dòng trong một cam kết, nhưng các cam kết trước đó đã thay đổi nhiều hơn và bạn chỉ muốn thêm dòng đó mà không có những thay đổi khác, thì thanh toán không phải là điều bạn muốn.
Mặt khác, nếu bạn muốn áp dụng bản vá được giới thiệu trong cam kết chỉ cho một tệp duy nhất, bạn có nhiều tùy chọn. Bạn có thể chạy git cherry-pick -n
, tức là không cần cam kết, chỉnh sửa cam kết (ví dụ: đặt lại tất cả các tệp bằng cách sử dụng git reset -- .
và chỉ thêm tệp bạn thực sự muốn thay đổi bằng cách sử dụng git add <filename>
). Hoặc bạn có thể tạo khác biệt cho tệp và áp dụng khác biệt sau đó:
git diff <branch>^..<branch> -- <filename> | git apply