Respuestas:
Lo siguiente funciona para mí:
git diff master:foo foo
En el pasado, pudo haber sido:
git diff foo master:foo
--para separar los parámetros de los argumentos de ruta? git diff -- master:foo foo
git diff -- master:foo foono funciona: parece tratar el argumento master:foocomo un nombre de archivo inexistente (y lo ignora) en lugar de un archivo en una rama. Intente cambiar los últimos 2 args: si funcionó, la comparación de diferencias debería invertirse, pero la salida no cambia.
git diff master:foo foopero no al revés. Yo tampoco lo entiendo. Con git 1.7.9.5 / Ubuntu 12.04, al menos puedo hacer git diff -R master:foo foopara obtener la diferencia que realmente quiero. Cuando intento eso con msysgit 1.9.4 / Windows 7 x64 me sale fatal: unable to read 0000000000000000000000000000000000000000. Sin -Rmí recibo el mismo mensaje de error que con git 1.7.9.5, pero con 1.9.4 obtengo fatal: master:foo: no such path in the working tree.
Estás tratando de comparar tu árbol de trabajo con un nombre de rama en particular, así que quieres esto:
git diff master -- foo
Que es de esta forma de git-diff (vea la página de manual de 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.
Para su información, también hay una opción --cached(aka --staged) para ver la diferencia de lo que ha puesto en escena, en lugar de 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.
También: git diff master..feature foo
Ya git diff foo master:fooque no funciona en directorios para mí.
git diff branch1:foo master:foo
git diff mybranch master -- file
también debería funcionar
git diff deployment master -- filey git diff master deployment -- filefuncionan como se espera con 2 ramas .
Para ver los cambios locales en comparación con su sucursal actual
git diff .
Para ver cambios locales, compare con cualquier otra sucursal existente
git diff <branch-name> .
Para ver los cambios de un archivo en particular
git diff <branch-name> -- <file-path>
Asegúrate de correr git fetchal principio.
git diff, siempre pienso en stackoverflow.com/questions/5256249/git-diff-doesnt-show-enough/…