Obtener las diferencias de git entre un file cambiado localmente y una twig diferente

He hecho algunas modificaciones en un file local, pero aún no lo he comprometido. Quiero hacer un git diff de esta versión actual con la de una twig diferente, pero cuando lo haga:

git diff master otherbranch myfile.txt 

parece que muestra la diferencia entre la última confirmación de myfile.txt en la twig actual y la versión actual, no la diferencia con la otra twig y la versión actual.

¡Estás muy cerca!

 git diff master otherbranch myfile.txt 

Esto "significa" lo mismo que git diff master otherbranch -- myfile.txt , que, como vemos en la documentation de git diff , tiene la forma general:

 git diff <commit> <commit> -- <path> 

Esto es para ver los cambios entre dos <commit> arbitrarios.

Lo que quieres es justo encima de eso:

Este formulario es para ver los cambios que tiene en su tree de trabajo en relación con el <commit> nombrado. Puede usar HEAD para compararlo con la confirmación más reciente o un nombre de twig para comparar con la punta de una twig diferente.

y mirando una línea más adelante en la página del manual verá:

git diff [–options] <commit> [-] [<ruta> …]

cuál podría ser:

 git diff otherbranch -- myfile.txt 

La razón para usar el -- es en caso de que necesite modificar un file llamado, por ejemplo, --name-only o -w o algo así. Es una buena idea tener el hábito de usarlo siempre, no es que realmente importe para git diff , pero algún día si accidentalmente creas un file llamado -rf , 1 y ejecutas git rm -- -rf , te darás count de que es un muy buen hábito 🙂

Es una buena idea leer y estudiar la página del manual, porque hay muchas forms de git diff -name no commits, name 1 commit o name 2 commits; use u omite --staged todos los cuales difieren cosas diferentes. Me llevó aproximadamente un año llegar al punto de saber cuál usar sin tener que volver a revisar el manual.


1 Realmente, esto sucede a veces, especialmente si un compañero de trabajo decide : > ./-rf y corre : > ./-rf . Otra forma de manejarlo es usar ./-rf , al igual que la broma, ya que ./-rf no comienza con - . Pero es solo un buen hábito.