tag remove practices crear best git

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

  1. git diff muestra cambios sin etapas.
  2. git diff --cached muestra los cambios por etapas.
  3. 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í"