traemos tipos tag repositorio remove remoto qué los existen etiquetas cómo cambios git git-checkout

git - tipos - Cómo obtener un solo archivo de otra rama



¿cómo traemos los cambios del repositorio remoto? (5)

Estoy usando git y trabajando en la rama maestra. Esta rama tiene un archivo llamado app.js

Tengo una rama experiment en la que hice muchos cambios y toneladas de confirmaciones. Ahora quiero llevar todos los cambios realizados solo a app.js desde el experiment hasta la rama master .

¿Cómo puedo hacer eso?

Una vez más no quiero una fusión. Solo quiero llevar todos los cambios en app.js desde experiment rama del experiment rama master .


O si quieres todos los archivos de otra rama:

git checkout <brachname> -- .


Suplementario a las respuestas de VonC y Chhh.

git show experiment:path/to/relative/app.js > app.js # If your current working directory is relative than just use git show experiment:app.js > app.js

o

git checkout experiment -- app.js


Todo es mucho más simple, usa git checkout para eso.

Supongamos you''re on master rama you''re on master , para obtener app.js from new-feature rama app.js from new-feature haz:

git checkout new-feature path/to/app.js // note that there is no leading slash in the path!

Esto te traerá los contenidos del archivo deseado. Puede, como siempre, usar parte de sha1 en lugar del nombre de rama de nueva característica para obtener el archivo como estaba en ese compromiso en particular.


git checkout branch_name file_name

Ejemplo:

git checkout master App.java


git checkout master # first get back to master git checkout experiment -- app.js # then copy the version of app.js # from branch "experiment"

Vea también git cómo deshacer los cambios de un archivo?

Como menciona Jakub Narębski 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 de 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 menciona Frosty en el comentario:

solo obtendrás el estado más reciente de app.js

Pero, para git checkout o git show , puede hacer referencia a cualquier revisión que desee, como se ilustra en la pregunta SO " revisión de git checkout 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í.