Tengo un file que he cambiado para agregar 2 nuevas características a los sistemas. Ahora solo quiero comprometer una de las funciones en la twig. Así que revisé los cambios con git add -p y ahora quiero verificar que solo obtuve las partes de esta característica y que no olvidé ninguna. Por lo tanto, mi idea era ver las diferencias como diff entre {HEAD, stage, working dir}.
Intenté get los controlleres correctos para los diferentes files y luego combinarlos con una llamada de git difftool.
HEAD: git show HEAD:src/autosub.py
-> HEAD:src/autosub.py
puesta en escena: git show :src/autosub.py
-> :src/autosub.py
dir de trabajo: src/autosub.py
Pero la llamada combinada no funciona: git difftool HEAD:src/autosub.py :src/autosub.py src/autosub.py
¿Qué estoy haciendo mal? ¡Gracias!
git diff
:
git diff [options] [<commit>] [--] [<path>...]
Solo acepta commit como arguments y no tiene la intención de hacer un diff3 con otras cosas que no sean commit.
Tienes que hacerlo en 2 partes:
git diff[tool]
HEAD
: git diff[tool] --staged
(o git diff --cached
) El segundo es la manera de ver lo que comprometerá.
Puede configurar diff.mnemonicPrefix
para ver el diff.mnemonicPrefix
w
(dir de trabajo), i
(índice / etapa) o c
(commit / HEAD) en el diff en lugar de a
y b
.
Si realmente necesita hacer un diff3 entre WD / stage / HEAD:
git show HEAD:path > /tmp/head git show :path > /tmp/staged diff3 /tmp/head /tmp/staged path rm /tmp/head /tmp/staged
Puede poner esto en una function de shell o un script y luego agregarlo como un alias :
# Diff-3 between _C_ommit/_I_ndex/_W_orkingdir git config --global alias.diff3ciw '! the_script'