¿Cómo obtener una vista previa de git-pull?

Resuelto Milan Babuškov asked hace 16 años • 10 respuestas

¿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".

Milan Babuškov avatar Oct 08 '08 03:10 Milan Babuškov
Aceptado

Después de hacer a git fetch, haga a git log HEAD..origin/masterpara 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/masterpara 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-pickpara aceptar solo las confirmaciones remotas específicas que desee. Más tarde, cuando esté listo para obtener todo, a git pullse 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).

Greg Hewgill avatar Oct 07 '2008 20:10 Greg Hewgill

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.

Brian Gianforcaro avatar Oct 07 '2008 20:10 Brian Gianforcaro