Git pull: determinar qué twig contiene actualizaciones

Vemos esto haciendo un git pull en la twig myfeature git reports:

 remote: Counting objects: 78, done. remote: Compressing objects: 100% (74/74), done. remote: Total 78 (delta 36), reused 0 (delta 0) Unpacking objects: 100% (78/78), done. From ssh://stash.xeon.net:7999/core/myproject eb0523c..a796ad2 myfeature -> origin/myfeature 63c5668..a11d406 master -> origin/master * [new tag] myproject-7.9.0.13 -> myproject-7.9.0.13 * [new tag] myproject-8.0.0.0 -> myproject-8.0.0.0 Updating eb0523c..a796ad2 Fast-forward xxxmyproject/pom.xml | 2 +- app/pom.xml | 2 +- database/pom.xml | 2 +- distribution/pom.xml | 2 +- env/pom.xml | 2 +- pom.xml | 2 +- server/pom.xml | 2 +- web/pom.xml | 2 +- xsd/pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) 

¿Cómo se puede determinar cuál de las dos twigs (myfeature o master) contenía estos 78 (o 9) cambios?

Además, ¿por qué git indica Total 78 (delta 36) pero luego solo se 9 files changed ?

Los numbers en la línea delta total son objects git, que se discuten completamente en esta respuesta

En cuanto a qué twig tenía actualizados los 9 files, está tirando origen myfeature a su twig de características local, ya que esa es la twig activa.

Updating eb0523c..a796ad2 muestra los commit shas que se están moviendo, y notará que son los mismos sha listdos en la línea myfeature:

 eb0523c..a796ad2 myfeature -> origin/myfeature 

¿Por qué ves Total 78 (delta 36) pero luego solo ves 9 files modificados? ¿Qué representa el total / delta?

Delta es el espacio en KiB salvado por compression; No estoy del todo seguro sobre el total, pero podría ser el tamaño sin comprimir de los cambios.

¿Cómo se puede determinar cuál de las dos twigs (myfeature o master) contenía estos 78 (o 9) cambios?

De ningún modo. Así no es como funciona git. myfeature y master pueden ser absolutamente idénticos o totalmente disjuntos. Lo que ves es la cantidad de cambios: cómo influye eso en tu estado local en otra hoja de papel.

Por lo general, si estás en la twig "A" y realizas un jalón, solo cambiarás esa twig fundiéndote en la twig que ex- o implícitamente especificaste al tirar. Cuando finalice la compra de la twig "B", y haya habido cambios, git le dirá algo así como

 Local branch B 91 commits behind remote origin. Use git pull to update. 

En su logging de extracción, usted obtiene una actualización para master desde 63c5668..a11d406 y una actualización para myfeature eb0523c..a796ad2 , por ejemplo, puede diff --stat para ver qué cambió en el paso de 63c5668 a a11d406 por

 git diff --stat 63c5668 a11d406 

e identificar qué files cambiaron en qué twig por esa extracción.

 remote: Counting objects: 78, done. remote: Compressing objects: 100% (74/74), done. remote: Total 78 (delta 36), reused 0 (delta 0) Unpacking objects: 100% (78/78), done. From ssh://stash.xeon.net:7999/core/myproject eb0523c..a796ad2 myfeature -> origin/myfeature 63c5668..a11d406 master -> origin/master * [new tag] myproject-7.9.0.13 -> myproject-7.9.0.13 * [new tag] myproject-8.0.0.0 -> myproject-8.0.0.0 

Esta parte del resultado concierne a todo el repository y no a ninguna twig.

git pull es realmente un command de conveniencia, equivalente a ejecutar git fetch y luego reenviar rápidamente la twig actual a su control remoto de subida, si tiene uno. El resultado citado anteriormente proviene de git fetch .

Además, ¿por qué git indica Total 78 (delta 36) pero luego solo se 9 files changed ?

Como escribí anteriormente, el número anterior se refiere al resultado de get los cambios de los repositorys remotos (por lo general, hay uno, llamado origin por defecto). El número en realidad significa la cantidad de objects git, es decir, los files que residen en .git/objects . 9 files changed refieren al avance rápido de la twig actual ( myfeature ).