git - remove - ¿Encontrar diferencias entre la versión actual y la última?
git tag commit id (10)
Como se señaló en un comment de amalloy , si por "versión actual y última" te refieres al último compromiso y el compromiso anterior a eso, simplemente puedes usar
git show
Usando Git, ¿cómo puedes encontrar la diferencia entre la versión actual y la última?
git diff last version:HEAD
Diferencia entre el último compromiso pero el último compromiso (más el estado actual, si corresponde):
git diff HEAD~
o incluso (más fácil de escribir)
git diff @~
En primer lugar, use " git log
" para listar los registros en el repositorio.
Ahora, seleccione los dos identificadores de compromiso, que se ajustan a los dos confirmaciones, desea ver las diferencias ( Ejemplo : la mayoría de los confirmaciones más frecuentes y algunas confirmaciones más antiguas [según su expectativa de la versión actual y algunas versiones anteriores ) ] .
A continuación, utilice:
git diff <commit_id1> <commit_id2>
o
git difftool <commit_id1> <commit_id2>
Esto también funcionará para las etiquetas. (quite el ''uniq'' a continuación y otras partes si necesita ver todos los cambios)
git diff v1.58 HEAD
A continuación es el mismo, que podría ser útil para CI para microservicios en monorepo
git diff v1.58 HEAD --name-only | sort -u | awk ''BEGIN {FS="/"} {print $1}'' | uniq
<Folder Name>
(crédito: https://dzone.com/articles/build-test-and-deploy-apps-independently-from-a-mo )
Puedes hacerlo de esta manera también:
Comparar con el compromiso anterior.
git diff --name-status HEAD~1..HEAD
Comparar con las dos confirmaciones actuales y anteriores.
git diff --name-status HEAD~2..HEAD
Rápido y simple, asumiendo que estás en el maestro:
git diff (checkout_id):file.txt file.txt
Ejemplo:
git diff asdfioei91819280din198:file.txt file.txt
Realmente no entiendo el significado de "última versión".
Como se puede acceder al commit anterior con HEAD ^, creo que estás buscando algo como:
git diff HEAD^ HEAD
A partir de Git 1.8.5, @
es un alias para HEAD
, por lo que puede utilizar:
git diff @~..@
Lo siguiente también funcionará:
git show
Si quieres saber la diferencia entre la cabeza y cualquier compromiso puedes usar:
git diff commit_id HEAD
Y esto lanzará su herramienta visual diff (si está configurada):
git difftool HEAD^ HEAD
Como la comparación con HEAD es la predeterminada, puede omitirla (como lo señala Orient ):
git diff @^
git diff HEAD^
git diff commit_id
Advertencias
- @ScottF y @Panzercrisis explican en los comentarios que en Windows se debe usar el carácter
~
lugar de^
.
Solo usa la bandera cached
si agregaste, pero aún no te has comprometido:
git diff --cached --color
Suponiendo que "versión actual" es el directorio de trabajo (modificaciones no confirmadas) y que "última versión" es HEAD
(últimas modificaciones confirmadas para la rama actual), simplemente haga
git diff HEAD
El crédito por lo siguiente es para el usuario Cerran
Y si siempre omite el área de preparación con -a
cuando se compromete, simplemente puede usar git diff
.
Resumen
-
git diff
muestra cambios sin etapas. -
git diff --cached
muestra los cambios por etapas. -
git diff HEAD
muestra todos los cambios (tanto por etapas como sin etapas).
Fuente: git-diff (1) Página de manual - Cerran
Uso bitbucket con eclipse IDE con el complemento Eclipse EGit instalado. Yo comparo un archivo de cualquier versión de su historia (como SVN).
Project Explorer> file Right Click> Team> Show in history
Esto traerá el historial de todos los cambios en ese archivo. Ahora presione CTRL-clic y seleccione cualquiera de las dos versiones> "Comparar entre sí"