Mostrar qué archivos han cambiado entre dos revisiones

Resuelto johannix asked hace 15 años • 21 respuestas

Quiero fusionar dos ramas que han estado separadas por un tiempo y quería saber qué archivos se han modificado.

Encontré este enlace: http://linux.yyz.us/git-howto.html (movido a web.archive.org) que fue bastante útil.

Las herramientas para comparar sucursales que he encontrado son:

  • git diff master..branch
  • git log master..branch
  • git shortlog master..branch

Me preguntaba si hay algo como "git status master..branch" para ver solo aquellos archivos que son diferentes entre las dos ramas.

Sin crear una nueva herramienta, creo que esto es lo más cerca que puedes estar de hacerlo ahora (que por supuesto mostrará repeticiones si un archivo se modificó más de una vez):

  • git diff master..branch | grep "^diff"

Me preguntaba si hay algo que me perdí...

johannix avatar May 05 '09 07:05 johannix
Aceptado

Para comparar la rama actual con mainla rama:

$ git diff --name-status main

Para comparar dos ramas cualesquiera:

$ git diff --name-status firstbranch..yourBranchName

Hay más opciones en git diffla documentación oficial (y específicamente --name-statusla opción).

JasonSmith avatar May 05 '2009 01:05 JasonSmith

Intentar

$ git diff --stat --color master..branchName

Esto le brindará más información sobre cada cambio, sin dejar de utilizar la misma cantidad de líneas.

También puedes voltear las ramas para obtener una imagen aún más clara de la diferencia si las fusionaras al revés:

$ git diff --stat --color branchName..master
Gerry avatar Feb 09 '2011 19:02 Gerry

También tenga en cuenta que git tiene ramificaciones fáciles y económicas. Si creo que una fusión podría ser problemática, creo una rama para la fusión. Entonces, si mastertengo los cambios que quiero fusionar y baes mi rama la que necesita el código del maestro, podría hacer lo siguiente:

git checkout ba
git checkout -b ba-merge
git merge master
.... review new code and fix conflicts....
git commit
git checkout ba
git merge ba-merge
git branch -d ba-merge
git merge master

El resultado final es que pude probar la combinación en una rama desechable antes de arruinar mi rama. Si me enredo, puedo eliminar la ba-mergerama y empezar de nuevo.

Eric Anderson avatar Oct 11 '2012 01:10 Eric Anderson