git checkout master # first get back to master
git checkout experiment -- app.js # then copy the version of app.js
# from branch "experiment"
Lihat juga git cara membatalkan perubahan satu file?
Pembaruan Agustus 2019, Git 2.23
Dengan yang baru git switch
dan git restore
perintah, itu akan menjadi:
git switch master
git restore -s experiment -- app.js
Secara default, hanya pohon yang bekerja dipulihkan.
Jika Anda ingin memperbarui indeks juga (artinya mengembalikan konten file, dan menambahkannya ke indeks dalam satu perintah):
git restore -s experiment --staged --worktree -- app.js
# shorter:
git restore -s experiment -WS -- app.js
Seperti Jakub Narębski menyebutkan dalam komentar:
git show experiment:path/to/app.js > path/to/app.js
berfungsi juga, kecuali itu, sebagaimana dirinci dalam pertanyaan SO " Bagaimana cara mengambil satu file dari revisi tertentu di Git? ", Anda perlu menggunakan path lengkap dari direktori root repo.
Maka jalur / ke / app.js digunakan oleh Jakub dalam contohnya.
Seperti yang disebutkan Frosty dalam komentar:
Anda hanya akan mendapatkan status terbaru dari app.js
Tetapi, untuk git checkout
atau git show
, Anda sebenarnya dapat mereferensikan revisi apa pun yang Anda inginkan, seperti yang diilustrasikan dalam pertanyaan SO " git checkout revisi file di git gui ":
$ git show $REVISION:$FILENAME
$ git checkout $REVISION -- $FILENAME
akan sama adalah $ FILENAME adalah path lengkap file berversi.
$REVISION
dapat seperti yang ditunjukkan pada git rev-parse
:
experiment@{yesterday}:app.js # app.js as it was yesterday
experiment^:app.js # app.js on the first commit parent
experiment@{2}:app.js # app.js two commits ago
dan seterusnya.
schmijos menambahkan dalam komentar :
Anda juga dapat melakukan ini dari simpanan:
git checkout stash -- app.js
Ini sangat berguna jika Anda bekerja pada dua cabang dan tidak ingin melakukan.