git checkout master # first get back to master
git checkout experiment -- app.js # then copy the version of app.js
# from branch "experiment"
См. Также git, как отменить изменения одного файла?
Как Якуб Наребски упоминает в комментариях:
git show experiment:path/to/app.js > path/to/app.js
тоже работает, за исключением того, что, как подробно описано в вопросе SO " Как получить один файл из определенной ревизии в Git? ", вам нужно использовать полный путь из корневого каталога репозитория .
Отсюда путь / к / app.js, который использовал Якуб в своем примере.
Как Морозный упоминает в комментарии:
вы получите только самое последнее состояние app.js
Но для git checkout
или git show
вы можете ссылаться на любую ревизию, которую хотите, как показано в вопросе SO " git checkout revision файла в git gui ":
$ git show $REVISION:$FILENAME
$ git checkout $REVISION -- $FILENAME
будет таким же, если $ FILENAME является полным путем версионного файла.
$REVISION
может быть таким, как показано в 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
и т. Д.
schmijos добавляет в комментариях :
Вы также можете сделать это из тайника:
git checkout stash -- app.js
Это очень полезно, если вы работаете над двумя ветками и не хотите коммитить.