Tengo un repositorio con el archivo foo
en la rama principal. Cambié a la barra de la rama e hice algunos cambios en foo
. ¿Cómo puedo ahora ejecutar un git diff
entre esta copia (que aún no está confirmada) y la copia de la rama principal?diff Copia de trabajo actual de un archivo con copia comprometida de otra rama
Respuesta
Los siguientes obras para mí:
git diff master:foo foo
En el pasado, pueden haber sido:
git diff foo master:foo
también: git diff master..feature foo
Desde git diff foo master:foo
no funciona en directorios para mí.
git difftool -v tag/branch filename
Usted está tratando de comparar su árbol de trabajo con un nombre de rama en particular, por lo que desea esto:
git diff master -- foo
que es de esta forma de git-diff (consulte la página de manual git-diff)
git diff [--options] <commit> [--] [<path>...]
This form is to view the changes you have in your working tree
relative to the named <commit>. You can use HEAD to compare it with
the latest commit, or a branch name to compare with the tip of a
different branch.
FYI, también hay una opción --cached
(también conocido como --staged
) para ver el diff de lo que has preparado, más que todo en su árbol de trabajo:
git diff [--options] --cached [<commit>] [--] [<path>...]
This form is to view the changes you staged for the next commit
relative to the named <commit>.
...
--staged is a synonym of --cached.
Gracias. No tengo idea de por qué, pero solo esta respuesta funcionó para mí con git 1.8.1 en Linux. – srking
Excelente, gracias. Me colgó el deseo de incluir el nombre de mi rama actual en el comando diff, pero veo que no es necesario. – yoyo
Esto funcionó para mí hace unos meses, pero no parece ser ahora. Actualmente estoy en la versión 2.7.4 de Git (Apple Git-66); No sé lo que tenía antes. – hBrent
git diff mybranch master -- file
también debería funcionar
Esto solo funciona para archivos comprometidos con mybranch, no una copia de trabajo actual del archivo. – yoyo
- 1. SVN: fusiona los cambios locales en otra copia de trabajo
- 2. Mueva su copia de trabajo
- 3. TFS - Crear una rama de la copia de trabajo local
- 4. Copia de trabajo SVN a diferentes fusiones de filiales sin comprometerse a Copia de trabajo Sucursal
- 5. ¿Puede hacer un diff de la copia de trabajo con stash
- 6. SVN Copia de troncal a rama, también copia carpeta troncal?
- 7. SVN: copia rama al tronco
- 8. Mover svn copia de trabajo a otra computadora
- 9. SVN: ¿una copia de trabajo, dos repositorios?
- 10. Espacios de trabajo de eclipse y copia
- 11. 'Un-SVN' una copia de trabajo
- 12. ¿Cómo ramifico una copia de trabajo modificada con SVN?
- 13. Obtener una copia de trabajo de un repositorio vacío
- 14. svn - archivo en la copia de trabajo parece "perdido"
- 15. Copia de trabajo de actualización de SVN
- 16. ¿Copia de una secuencia a otra?
- 17. copia de trabajo de revisión mixta no corregible en svn?
- 18. SVN - No es un error de copia de trabajo
- 19. Versiones. "No es una copia de trabajo"
- 20. Undelete en SVN copia de trabajo
- 21. svn: eliminando un externo en la copia de trabajo?
- 22. Reubicación de la copia de trabajo SVN siguiente cambio de nombre de rama
- 23. Recuperar la versión anterior de un archivo sin cambiar el padre de copia de trabajo
- 24. SVN - Cuando etiqueta una copia de trabajo ¿sigue siendo una copia barata?
- 25. SVN fusionar la revisión anterior en la copia de trabajo
- 26. Misma copia de trabajo del código con 2 servidores SVN
- 27. Copia de hojas de trabajo de Excel en POI
- 28. descargar una copia local de trabajo de una página web
- 29. Copia de clase C++ (copia de puntero)
- 30. Copia de archivo atómico en .NET
Cada vez que veo una respuesta de la suya con respecto a 'diff' git, siempre pienso en http://stackoverflow.com/questions/5256249/git-diff- doesnt-show-enough/5257065 # 5257065 – VonC
@VonC: gracias, es bueno saber que valió la pena dibujar esos :) Por cierto, ¿entiendes la rareza con la que actualicé mi respuesta? –
¿Intentó con '--' para separar los parámetros de los argumentos de ruta? 'git diff - master: foo foo' – VonC