Supongamos que acabo de actualizar la rama foo
en master
, con conflictos. Quiero asegurarme de no dañar accidentalmente el contenido de foo
durante la resolución de conflictos introduciendo cambios adicionales o perdiendo cambios (que no sean los adecuados para la resolución de conflictos). He hecho esto a través de:Comparando las diferencias a través de una rebase en Git
diff -u <(git diff `git merge-base master [email protected]{1}` [email protected]{1}) \
<(git diff `git merge-base master foo ` foo )
(actualización o la sintaxis equivalente ...
para git-diff
la que acabo de ser recordado :)
diff -u <(git diff [email protected]{1}) <(git diff master...foo) | mate
Esto me muestra todos los cambios que se han producido a master..foo
considerado como un parche, que es exactamente lo que quiero comprobar para ser mínimo. Sin embargo, la invocación es compleja y el resultado no es completamente sencillo de interpretar.
¿Hay una manera mejor de llevar a cabo esta tarea? ¿Proporcionar la misma información, pero con un mejor método o formato? ¿O debería simplemente tomar lo anterior y finalizarlo en un script?
¿No es esto esencialmente equivalente a 'git diff foo @ {1} foo'? – twalberg
@twalberg No; 'git diff foo @ {1} foo' muestra tanto mis resoluciones de conflictos como los cambios realizados en el dominio sobre los que he vuelto a basar, en lugar de solo las resoluciones de conflictos. –
Ah, claro ... Solo estaba considerando mi propio caso de rebase más común, en el que la base de combinación de la fuente y el destino permanece igual (reescribiendo/aplastando una rama antes de presionar). – twalberg