Saltar al contenido
GitTree
Historia y recuperación

Comparar confirmaciones antes y después de una reescritura

What Changed… compara los parches en dos series de confirmación, la rama anterior a una reescritura y la rama posterior. Se omiten las confirmaciones de fusión. Los pares están marcados Same, Changed, Dropped o Added. La comparación no mueve referencias ni cambia archivos. El emparejamiento no es prueba de que dos confirmaciones signifiquen lo mismo.

GratisActualizado

Funciona en GitTree Gratis: todas las funciones locales de Git, sin necesidad de cuenta.

En esta página
  1. Antes de empezar
  2. donde encontrarlo
  3. Pasos
  4. Resultado esperado
  5. El comando Git
  6. Qué significa cada estado de par
  7. Cuando la comparación no se puede ejecutar
  8. Si algo sale mal
  9. Preguntas
  10. Relacionado

Antes de empezar

  • Lo que cambió es parte del plan gratuito. Git en tu RUTA debe proporcionar git range-diff. Si no es así, GitTree dice que este Git no puede comparar series reescritas.
  • Todavía tienes ambos consejos. Después de una rebase, el consejo anterior suele aparecer en el reflog. Objetos perdidos puede encontrar una confirmación sin puntos de rama.

donde encontrarlo

  • Menú Compare de una confirmación: What Changed….
  • El aviso después de un push forzado.
  • Alt+D o la paleta de comandos.
acciónmacOSWindows y Linux
What Changed…⌥DAlt+D
La paleta de comandos⌘⇧PCtrl+Shift+P

Pasos

  1. Abrir lo que cambió

    Seleccione la confirmación que reescribió, abra Compare y elija What Changed…, o presione Alt+D. El título del diálogo es What Changed…. La nota dice que compara los parches en dos series de confirmaciones y que se omiten las confirmaciones de fusión.

    El gráfico de confirmación del repositorio de lumen con una confirmación seleccionada
    Lo que cambió se abre desde el menú Comparar de una confirmación en este gráfico. La imagen fija es el gráfico, no el diálogo de comparación.GitTree interfaz con un repositorio de demostración.
  2. Elige los dos consejos

    Establezca Before rewrite en la sugerencia anterior y After rewrite en la sugerencia nueva. Choose both tips si alguno de los lados está vacío. En Advanced: excluded bases, Old base y New base limitan el rango. Deje una base vacía para utilizar el ancestro común de las puntas.

  3. Comparar

    Presione Compare. Stop solicita la lectura para finalizar el paso actual. El resultado es Rewrite comparison. Cada par es Same, Changed, Dropped o Added. Inspect patch difference abre un par. No patches differ in these ranges significa el partido de la serie.

  4. Revisar antes de publicar

    La nota dice que se revisen los parches modificados antes de publicarlos. Un par Changed es la misma ranura de parche con una diferencia diferente. Dropped solo estaba en la serie anterior. Added solo está en la nueva serie. Este diálogo no impulsa nada. Cuando esté listo, utilice la inserción normal o forzar la inserción con arrendamiento si el remoto todavía tiene la punta anterior.

Resultado esperado

Puede nombrar qué parches sobrevivieron a la reescritura, cuáles se editaron y cuáles aparecieron o desaparecieron. La rama, el índice y el árbol de trabajo están como estaban. Verifique el parche de un par modificado antes de pedirle a alguien que use el nuevo historial.

El comando Git

GitTree ejecuta git range-diff en los dos rangos. Puede ejecutar la misma comparación en una terminal. oldtip...newtip usa la base de combinación. Pasar cuatro revisiones establece ambas bases usted mismo, que es lo que hacen los campos avanzados.

git range-diff oldtip...newtip
git range-diff oldbase..oldtip newbase..newtip
git reflog show feature

git reflog show feature enumera los consejos que tenía la rama antes de la rebase, por lo que puedes pegar el consejo anterior en Before rewrite. Range-diff compara parches. No decide que dos mensajes de confirmación describan el mismo trabajo. Rebase y rebase interactiva son como ocurre la reescritura. La lección tutorial sobre rebase muestra el formulario de línea de comandos.

Qué significa cada estado de par

Estados de pares en comparación de reescritura
EstadoSignificado
Lo mismoEl parche coincide en ambas series.
cambiadoEl par coincide y el parche es diferente.
caídoEl parche solo está en la serie antigua.
AñadidoEl parche solo está en la nueva serie.

Se omiten las confirmaciones de fusión, por lo que una fusión que esperaba ver no es un par descartado. Partial comparison: output reached its limit significa que los rangos son demasiado amplios. Estrecha las bases. Git output format was not recognized significa que el texto impreso por Git no se pudo analizar. Inspeccione ese texto antes de confiar en la lista.

Cuando la comparación no se puede ejecutar

Si Git no tiene range-diff, GitTree dice This Git cannot compare rewritten series. Update Git, or use Compare in the command palette to inspect the two revisions. Esa comparación ordinaria es una diferencia de dos árboles, no una serie de parches. Actualice Git desde la pantalla de configuración o desde Configuración de Git, luego abra Qué cambió nuevamente.

Si algo sale mal

"Este Git no puede compararse con series reescritas".

El Git instalado no tiene diferencia de rango. Actualice Git y vuelva a intentarlo. Hasta entonces, compare las dos revisiones desde la paleta de comandos. Esa vista es una diferencia de árbol, no una serie de parches.

"Elija ambos consejos".

Antes de reescribir o Después de reescribir está vacío. Elija el consejo anterior del reflog o de Objetos perdidos y el nuevo consejo de la rama.

"Comparación parcial: la producción alcanzó su límite. Estreche los rangos".

Establezca Base antigua y Base nueva de modo que cada lado sea solo el tramo reescrito, luego presione Comparar nuevamente.

"Ningún parche difiere en estos rangos".

La serie coincide o las bases excluyen las confirmaciones que le interesan. Limpia una base para usar el ancestro común y comprueba que no hayas elegido el mismo consejo dos veces.

Preguntas

¿Qué cambió cambia mi rama?

No. Lee dos series de confirmación y muestra estados de pares. Las referencias y los archivos permanecen donde están.

¿Un par modificado tiene el mismo ID de confirmación?

No. Una rebase escribe nuevos ID de confirmación. Cambiado significa que los parches se emparejaron y sus diferencias no son idénticas. No es una afirmación de que los dos mensajes describan la misma intención.

¿Por qué faltan confirmaciones de fusión?

El cuadro de diálogo dice que se omiten las confirmaciones de fusión. Range-diff compara los parches en cada lado de la reescritura, no los nodos de fusión.

¿Dónde está el viejo consejo después de una rebase?

Suele estar en el reflog hasta que caduque la entrada. Lost & Found puede buscar ese reflog y las referencias de recuperación de GitTree si no hay ninguna rama que lo apunte.

¿Esto reemplaza a git diff?

No. git diff compara dos árboles. git range-diff compara dos series de parches. Utilice lo que cambió después de una reescritura. Utilice una comparación ordinaria cuando desee la diferencia del árbol.