El comando Git fetch en Git
Lección 37 / 53
Git Guía Git Guía Git español
Hemos visto cómo Git permite que cada repositorio realice un seguimiento de los repositorios (remotos) a los que está conectado a través del comando remoto git.
La sincronización de cambios entre diferentes repositorios se realiza mediante otros comandos, cada uno de los cuales tiene su propia responsabilidad específica.
El comando Git fetch en Git
El propósito de git fetch es descargar commit, ramas y etiquetas desde un repositorio remoto al repositorio local. Los nuevos contenidos recuperados a través de git fetch deberían aplicarse explícitamente a la propia working copy, lo que hace que la ejecución de este comando sea una operación segura para recuperar nuevos commit, sin tener que aplicarlos necesariamente a su trabajo en curso.
Supongamos que ayer clonamos un repositorio remoto que solo tenía la rama principal y esa rama contenía tres commit. Por lo tanto, mi copia local sabe que está "conectada" al repositorio remoto indicado como origen y mi working copy ha extraído el último commit de la única rama presente, conectando la rama local principal con la rama correspondiente con el mismo nombre en origen.
❯ git branch -vv
* main c7ed69f [origin/main] implemented first feature
Otro colaborados ha agregado algunos commit en main y ha creado un nuevo branch.
$ git fetch
c7ed69f..45e66a4 main -> origin/main
* [new branch] some-feature -> origin/some-feature
$ git status
On branch main
Your branch is behind 'origin/main' by 2 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Los nuevos commit y la nueva rama ahora también están disponibles en el repositorio local, pero no se han aplicado. Esto se debe a que, aunque todos los commit, tanto locales como remotas, ahora están presentes en el repositorio local, Git mantiene los commit de los branch locales separados de los branch remotos.
Commit locales y remotos
Será posible ver cuales commit han sido añadidos a origin/master a través git log y aplicar nuevos commit al propio branch local a través de git merge.
$ git log --oneline main..origin/main
22596179 (origin/main, origin/HEAD) new commit two
f8986356 new commit one
$ git merge origin/main
Updating c7ed69f..45e66a4
Fast-forward
Post merge
Más adelante veremos qué hacer en el caso de que se hayan agregado commit a la propia versión local.
Anterior
36 Los principales repo..Siguiente
38 El comando Git push ..