Para cada defecto en el código, creo una twig separada. Cuando se corrige el defecto, fusiono esta twig en el maestro, por lo que tengo un historial como el que se muestra a continuación (vemos dos twigs con correcciones):
defect1 fix defect2 fix a---b---c---d e---f / \ / \ ---o---1---x---y---z---2---o---3---w---4---o---
La pregunta es cómo get diff para fix1 (entre branch start (1) y branch end (2)) o fix2 (diff entre (3) y (4)) en cualquier punto del time (por ejemplo, para cualquier defecto cerrado en pasado) .
Actualización: la pregunta real es cómo resolver las sums SHA de a
y d
o e
y f
para realizar el siguiente command diff <commit> <commit>
obvio diff <commit> <commit>
La respuesta es simple:
git diff 1..d
Esto muestra las diferencias entre el punto de bifurcación de su defect1 fix
de defect1 fix
(es decir, 1
) y su extremo (es decir, d
).
Para encontrar el inicio de la twig defect1 fix
, use
git merge-base master defect1-fix-branch
como se indica en esta respuesta: http://sofes.miximages.com/a/2458173/520162 .
Esto te da 1
según la documentation de git merge-base
.
El final de la twig del defect1 fix
simplemente se identifica por su nombre. Entonces, al encontrar todas las diferencias introducidas en el defect1 fix
, debes hacer
git diff 1..defect1-fix-branch
Nota: esto es equivalente, como se detalla en " No se puede pensar en un caso en el que el git diff master...lab
git diff master..lab
y el git diff master...lab
sea diferente ", para:
git diff master...defect1-fix-branch
git diff A...B
es equivalente agit diff $(git merge-base AB) B
(De " git diff no se muestra suficiente ")
Qué pasa:
git diff <commit> <commit>
Donde los parameters de confirmación son las sums de comprobación SHA de las confirmaciones reales.
Si desea ver qué cambios introdujo una twig de características, después de que se haya fusionado, simplemente ejecute:
git diff HEAD^..HEAD
En la twig master
Esto muestra las diferencias entre el primer padre HEAD (merge commit) y el HEAD, que muestra de manera efectiva las diferencias en la fusión de toda la twig de características introducida en la twig principal.
No hay necesidad de hacer las cosas complejas 🙂