Git: ¿Cómo actualizar/comprar un solo archivo desde el maestro de origen remoto?

Resuelto foresth asked hace 14 años • 0 respuestas

El escenario:

  1. Hago algunos cambios en un solo archivo localmente y lo ejecuto git add, git commitygit push
  2. El archivo se envía al repositorio maestro de origen remoto.
  3. Tengo otro repositorio local que se implementa vía Capistrano con el método "remote_cache" desde ese repositorio remoto
  4. Ahora no quiero implementar toda la aplicación, sino simplemente actualizar/verificar ese único archivo.

¿Es esto posible de alguna manera con git? No pude encontrar nada que funcionara ni pude resolverlo. Con SVN lo acabo de hacer svn up filey listo.

foresth avatar Jul 26 '10 18:07 foresth
Aceptado

Es posible hacerlo (en el repositorio implementado)

git fetch
git checkout origin/master -- path/to/file

La recuperación descargará todos los cambios recientes, pero no los colocará en su código desprotegido actual (área de trabajo).

La compra actualizará el árbol de trabajo con el archivo particular de los cambios descargados ( origin/master).

Al menos esto funciona para mí para esas pequeñas correcciones de errores tipográficos, donde se siente extraño crear una rama, etc. solo para cambiar una palabra en un archivo.

qzio avatar Dec 13 '2010 10:12 qzio

Con Git 2.23 (agosto de 2019) y el nuevo comando (aún experimental) git restore, visto en "¿ Cómo restablecer todos los archivos del directorio de trabajo pero no del área de preparación? ", Eso sería:

git fetch
git restore -s origin/master -- path/to/file

La idea es: git restoresolo trata con archivos, no con archivos y ramas como git checkoutlo hace.
Ver " Confundido porgit checkout ": ahí es donde git switchentra en juego)


codersam agrega en los comentarios :

en mi caso quería obtener los datos de mi fuente ascendente (de la cual bifurqué).
Así que simplemente cambié a:

git restore -s upstream/master -- path/to/file
VonC avatar Sep 19 '2019 21:09 VonC

El siguiente código funcionó para mí:

git fetch
git checkout <branch from which file needs to be fetched> <filepath> 
Shagun Pruthi avatar Jul 30 '2018 12:07 Shagun Pruthi

Simplemente me funciona

git checkout origin/develop file_name.php
Mathivanan avatar Aug 13 '2021 08:08 Mathivanan
git archive --format=zip --remote=ssh://<user>@<host>/repos/<repo name> <tag or HEAD> <filename> > <output file name>.zip
Dmitry R avatar Sep 23 '2015 05:09 Dmitry R