¿Cómo obtener una vista previa de git-pull?
¿Es siquiera posible?
Básicamente, hay un repositorio remoto del cual extraigo usando solo:
git pull
Ahora, me gustaría obtener una vista previa de lo que cambiaría este tirón (una diferencia) sin tocar nada de mi lado. La razón es que lo que estoy sacando podría no ser "bueno" y quiero que alguien más lo arregle antes de que mi repositorio esté "sucio".
Después de hacer a git fetch
, haga a git log HEAD..origin/master
para mostrar las entradas de registro entre su última confirmación común y la rama maestra del origen. Para mostrar las diferencias, utilice git log -p HEAD..origin/master
para mostrar cada parche o git diff HEAD...origin/master
(tres puntos, no dos) para mostrar una única diferencia.
Normalmente no hay necesidad de deshacer una recuperación, porque al realizarla solo se actualizan las ramas remotas y ninguna de sus ramas. Si no está preparado para extraer y fusionar todas las confirmaciones remotas, puede utilizar git cherry-pick
para aceptar solo las confirmaciones remotas específicas que desee. Más tarde, cuando esté listo para obtener todo, a git pull
se fusionará con el resto de las confirmaciones.
Actualización: no estoy del todo seguro de por qué desea evitar el uso de git fetch. Todo lo que hace git fetch es actualizar su copia local de las ramas remotas. Esta copia local no tiene nada que ver con ninguna de sus sucursales y no tiene nada que ver con cambios locales no confirmados. He oído hablar de personas que ejecutan git fetch en una tarea cron porque es muy seguro. (Sin embargo, normalmente no recomendaría hacer eso).
Creo que git fetch es lo que estás buscando.
Extraerá los cambios y objetos sin enviarlos al índice de su repositorio local.
Se pueden fusionar más tarde con git merge .
Página de manual
Editar: explicación adicional
Directamente desde el enlace del curso intensivo Git-SVN
Ahora bien, ¿cómo se obtienen nuevos cambios desde un repositorio remoto? Los traes:
git fetch http://host.xz/path/to/repo.git/
En este punto están en su repositorio y puede examinarlos usando:
git log origin
También puedes diferenciar los cambios. También puedes usar git log HEAD..origin para ver solo los cambios que no tienes en tu rama. Luego, si desea fusionarlos, simplemente haga:
git merge origin
Tenga en cuenta que si no especifica una rama para recuperar, se utilizará de forma predeterminada el seguimiento remoto.
Sinceramente, leer la página de manual le permitirá comprender mejor las opciones y cómo utilizarlas.
Solo estoy tratando de hacer esto con ejemplos y memoria, actualmente no tengo una caja para probar. Deberías mirar:
git log -p //log with diff
Una recuperación se puede deshacer con git reset --hard ( enlace ); sin embargo, todos los cambios no confirmados en su árbol se perderán, así como los cambios que haya obtenido.