Tôi sẽ sử dụng git restore
(có sẵn từ git 2.23)
git restore --source otherbranch path/to/myfile.txt
Tại sao nó tốt hơn các lựa chọn khác?
git checkout otherbranch -- path/to/myfile.txt
- Nó sao chép tập tin vào thư mục làm việc nhưng cũng vào khu vực tổ chức (hiệu ứng tương tự như khi bạn sao chép tập tin này bằng tay và thực hiện git add
trên nó). git restore
không chạm vào khu vực tổ chức (trừ khi được nói với --staged
tùy chọn).
git show otherbranch:path/to/myfile.txt > path/to/myfile.txt
sử dụng chuyển hướng vỏ tiêu chuẩn. Nếu bạn sử dụng Powershell thì có thể có vấn đề với việc đóng văn bản hoặc bạn có thể bị hỏng tệp nếu đó là tệp nhị phân . Với git restore
việc thay đổi tập tin được thực hiện tất cả bằng cách git
thực thi.
Một ưu điểm khác là bạn có thể khôi phục toàn bộ thư mục với:
git restore --source otherbranch path/to
hoặc với git restore --overlay --source otherbranch path/to
nếu bạn muốn tránh xóa các tập tin. Ví dụ: nếu có ít tệp trên otherbranch
hơn trong thư mục làm việc hiện tại (và các tệp này được theo dõi ) mà không có --overlay
tùy chọn git restore
sẽ xóa chúng. Nhưng đây là bahaviour mặc định tốt, rất có thể bạn muốn trạng thái của thư mục giống như trong otherbranch
, không phải "giống nhau mà là với các tệp bổ sung trong nhánh hiện tại của tôi"