Pregunta Mostrar qué archivos han cambiado entre dos revisiones


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 que fue bastante útil.

Las herramientas para comparar las sucursales con las que me he encontrado son:

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

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

Sin crear una nueva herramienta, creo que esto es lo más cercano que puedes hacer ahora (que por supuesto mostrará repeticiones si un archivo fue modificado más de una vez):

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

Me preguntaba si había algo que extrañaba ...


1787
2018-05-05 00:47


origen


Respuestas:


Para comparar la rama actual contra master

$ git diff --name-status master

Para comparar cualquier par de ramas

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

Eso debería hacer lo que necesita, si lo entiendo correctamente.


2184
2018-05-05 01:04



Tratar

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

Esto le dará más información acerca de cada cambio, sin dejar de usar la misma cantidad de líneas.

También puede voltear las ramas para obtener una imagen aún más clara de la diferencia si se fusionara de la otra manera:

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

354
2018-02-09 19:38



También tenga en cuenta que git tiene ramificaciones baratas y fáciles. Si creo que una fusión podría ser problemática, creo una sucursal para la fusión. Así que si master tiene los cambios que quiero fusionar y ba es mi sucursal 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 tengo que probar la fusión en una rama desechable antes de atornillar con mi rama. Si me enredezco, puedo borrar el ba-merge rama y comenzar de nuevo.


145
2017-10-11 01:22



Si alguien está intentando generar un archivo diff de dos ramas:

git diff master..otherbranch > myDiffFile.diff

44
2018-04-03 14:01



Tenga en cuenta que git hace que sea fácil simplemente probar la combinación y alejarse de cualquier problema si no le gusta el resultado. Puede ser más fácil que buscar problemas potenciales de antemano.


30
2018-05-05 00:59



También hay un método basado en GUI.

Puedes usar gitk.

  1. Correr:

    $ gitk --all
    
  2. Haga clic derecho en una confirmación de una rama y seleccione Marque esto commit en el menú emergente.

  3. Haga clic derecho en una confirmación de otra rama y seleccione Diff esto -> commit marcado o Diff marcado cometer -> esto.

Luego habrá una lista de archivos modificados en el panel inferior derecho y detalles de diferencias en el panel inferior izquierdo.


29
2018-06-14 06:01



Una opción más, usando meld en este caso:

git difftool -d master otherbranch

Esto permite no solo ver las diferencias entre los archivos, sino que también proporciona una manera fácil de señalar y hacer clic en un archivo específico.


26
2018-04-24 13:23



Cuando se trabaja en colaboración, o en múltiples funciones a la vez, es común que el maestro o el maestro contenga trabajos que no estén incluidos en su sucursal y aparezcan incorrectamente en diffs básicos.

Si su Upstream puede haberse movido, debe hacer esto:

git fetch
git diff origin/master...

El solo uso de git diff master puede incluir, o no incluir, cambios relevantes.


14
2018-03-24 03:21



Y si busca cambios solo entre ciertos archivos, entonces:

git diff branch1 branch2 -- myfile1.js myfile2.js

branch1 es opcional y su rama actual (la rama en la que se encuentra) se considerará por defecto si no se proporciona branch1. p.ej:

git diff master -- controller/index.js

10
2018-05-16 13:13



Si estás usando IntelliJ IDEA, también puede comparar cualquier rama con su rama de trabajo actual. Ver http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-branches.html#d288093e3827 para más información. Esto está disponible en edición gratuita también.


9
2018-06-06 07:17