Digamos que cloné un repositorio y comencé a modificar archivos. Sé que si tengo cambios locales no confirmados, puedo hacer una diferencia de la siguiente manera git diff test.txt
y me mostrará la diferencia entre el HEAD local actual y los cambios modificados y no confirmados en el archivo. Si confirmo esos cambios, puedo diferenciarlos del repositorio original usandogit diff master origin/master
Pero, ¿hay alguna forma de diferenciar los cambios locales con el repositorio original en el servidor antes de comprometerse localmente? Probé varias permutaciones git diff --cached master origin/master
sin suerte.
Respuestas:
Dado que el repositorio remoto ha sido almacenado en caché
git fetch
, debería ser posible compararlo con estos commits. Intenta lo siguiente:fuente
git diff master origin/master
todavía se comparaba con la versión comprometida (obvio en retrospectiva). Pero dejar de lado al maestro ahora compara los cambios locales con la versión obtenida.origin master
y en otro lugarorigin/master
. Todavía hay trabajo por hacer, en mi humilde opinión.git diff origin/master
vuelvefatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree.
existe en el origen principal, sin embargo, por ejemplo,git fetch origin master
funciona bien,Sé que no es una respuesta a la pregunta exacta formulada, pero encontré que esta pregunta buscaba diferenciar un archivo en una rama y un archivo no confirmado local y pensé que compartiría
Sintaxis:
Ejemplos:
(Gracias Eric Boehs por no tener que escribir el nombre de archivo dos veces)
fuente
commit-ish
y el separador de dos puntos. Los documentos en git-diff no parecen mencionarlo. Lo he usado durante tanto tiempo que no recuerdo dónde lo encontré por primera vez. Probablemente los ejemplos de otras personas sobre otros comandos y con los que acabo de experimentargit-diff
. Me temo que otra respuestacommit-ish
es la mejor que puedo encontrar en este momento.git diff master:./ -- README.md
. De esta forma, no tiene que escribirREADME.md
dos veces y puede agregarlo a un alias más fácilmente.git diff master: -- README.md
la./
crea una/dev/null
fuente en lugar de la rama remota. Usando git versión 2.19.0Para ver cambios no escalonados (no agregados) en archivos existentes
git diff
Tenga en cuenta que esto no rastrea nuevos archivos. Para ver cambios por etapas, no comprometidos
git diff --cached
fuente
Si desea comparar archivos visualmente, puede usar:
Iniciará su aplicación diff automáticamente para cada archivo modificado.
PD: Si no configuró una aplicación diff, puede hacerlo como en el ejemplo a continuación (uso Winmerge ):
fuente