git checkout master # first get back to master
git checkout experiment -- app.js # then copy the version of app.js
# from branch "experiment"
¿Ver también git cómo deshacer cambios de un archivo?
Actualización de agosto de 2019, Git 2.23
Con los nuevos git switch
y git restore
comandos, eso sería:
git switch master
git restore -s experiment -- app.js
Por defecto, solo se restaura el árbol de trabajo.
Si también desea actualizar el índice (es decir, restaurar el contenido del archivo y agregarlo al índice en un comando):
git restore -s experiment --staged --worktree -- app.js
# shorter:
git restore -s experiment -WS -- app.js
Como Jakub Narębski menciona en los comentarios:
git show experiment:path/to/app.js > path/to/app.js
también funciona, excepto que, como se detalla en la pregunta SO " ¿Cómo recuperar un solo archivo de una revisión específica en Git? ", debe usar la ruta completa desde el directorio raíz del repositorio.
De ahí la ruta / to / app.js utilizada por Jakub en su ejemplo.
Como Frosty menciona en el comentario:
solo obtendrá el estado más reciente de app.js
Pero, para git checkout
o git show
, en realidad puede hacer referencia a cualquier revisión que desee, como se ilustra en la pregunta SO " git checkout revision de un archivo en git gui ":
$ git show $REVISION:$FILENAME
$ git checkout $REVISION -- $FILENAME
sería lo mismo si $ FILENAME es una ruta completa de un archivo versionado.
$REVISION
puede ser como se muestra en 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
y así.
Schmijos agrega en los comentarios :
También puedes hacer esto desde un alijo:
git checkout stash -- app.js
Esto es muy útil si está trabajando en dos ramas y no quiere comprometerse.