git checkout master # first get back to master
git checkout experiment -- app.js # then copy the version of app.js
# from branch "experiment"
Ayrıca bkz. Git, bir dosyadaki değişiklikleri nasıl geri alabilirim?
Güncelleme Ağustos 2019, Git 2.23
Yeni git switch
ve git restore
komutlarla bu şöyle olur:
git switch master
git restore -s experiment -- app.js
Varsayılan olarak, yalnızca çalışma ağacı geri yüklenir.
Siz de dizinini güncellemek istiyorsanız (dosya içeriği geri, anlam ve tek komuta dizinine eklemesine):
git restore -s experiment --staged --worktree -- app.js
# shorter:
git restore -s experiment -WS -- app.js
As Jakub Narębski yorumlardaki bahisler:
git show experiment:path/to/app.js > path/to/app.js
" Git'te belirli bir revizyondan tek bir dosya nasıl alınır? " sorusunda ayrıntılı olarak açıklandığı gibi , reponun kök dizininden tam yolu kullanmanız gerekir.
Bu nedenle Jakub tarafından kendi örneğinde kullanılan / / app.js yolu.
As Frosty yorumunda bahseder:
yalnızca en son app.js durumunu alırsınız
Ancak, git checkout
veya için git show
, aslında " git gui'deki bir dosyanın git checkout revizyonu " SO sorusunda gösterildiği gibi, istediğiniz herhangi bir düzeltmeye başvurabilirsiniz :
$ git show $REVISION:$FILENAME
$ git checkout $REVISION -- $FILENAME
aynı olur $ FILENAME sürüm dosyasının tam yoludur .
$REVISION
gösterildiği gibi olabilir 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
ve bunun gibi.
schmijos yorumlarda şunları ekliyor :
bunu bir saklamaktan da yapabilirsiniz:
git checkout stash -- app.js
İki dal üzerinde çalışıyorsanız ve taahhüt etmek istemiyorsanız bu çok yararlıdır.