Saya akan menggunakan git restore
(tersedia sejak git 2.23)
git restore --source otherbranch path/to/myfile.txt
Mengapa lebih baik daripada opsi lain?
git checkout otherbranch -- path/to/myfile.txt
- Ini menyalin file ke direktori kerja tetapi juga ke area pementasan (efek yang sama seperti jika Anda akan menyalin file ini secara manual dan dieksekusi git add
di atasnya). git restore
tidak menyentuh area pementasan (kecuali jika diminta oleh --staged
opsi).
git show otherbranch:path/to/myfile.txt > path/to/myfile.txt
menggunakan pengalihan shell standar. Jika Anda menggunakan Powershell maka mungkin ada masalah dengan pengkodean teks atau Anda bisa mendapatkan file yang rusak jika itu biner . Dengan git restore
mengubah file dilakukan semua oleh git
executable.
Keuntungan lain adalah Anda dapat mengembalikan seluruh folder dengan:
git restore --source otherbranch path/to
atau dengan git restore --overlay --source otherbranch path/to
jika Anda ingin menghindari menghapus file. Misalnya jika ada lebih sedikit file otherbranch
daripada di direktori kerja saat ini (dan file-file ini dilacak ) tanpa --overlay
opsi git restore
akan menghapusnya. Tapi ini adalah bahaviour default yang bagus, Anda kemungkinan besar ingin keadaan direktori sama seperti di otherbranch
, bukan "sama tetapi dengan file tambahan di cabang saya saat ini"