tipos tag remove qué existen etiquetas crear commits git mercurial git-p4

tag - Git: ¿Hay un equivalente a la tira de hg?



qué tipos de etiquetas existen en git (3)

Tengo un repo donde hice un cambio que está causando el infierno de fusión y me gustaría fingir que nunca existió. Una historia larga y complicada que involucra el empalme de un repo preexistente encima de uno que se actualiza a través de git-p4, pero el resultado final es que realmente quiero que git pretenda que un cierto cambio nunca existió.

Si fuera Mercurial, estoy bastante seguro de que podría solucionar mi problema con hg strip , pero no puedo encontrar ese comando en Git.

Gracias por cualquier sugerencia que pueda tener.


Hay más de un comando que debes hacer. El primero, como han mencionado otras personas, es git reset . Querrá encontrar el conjunto de cambios justo antes del que desea deshacerse y usar

git reset --hard <changeset>

Esto cambiará el encabezado de la rama actual (y el índice) para apuntar a ese conjunto de cambios, pero el conjunto de cambios "malo" todavía está presente . No se incluirá si presiona, pero se incluirá si clona su repositorio local y aún puede hacer referencia en los comandos de registro y pago.

Suponiendo que no haya otras referencias (por ejemplo, confirmaciones posteriores, etiquetas, etc.), puede limpiarlo con:

git gc --prune=now

Encontré este comando gracias a http://help.github.com/remove-sensitive-data/ , que también menciona que (como con hg strip ) si has empujado ese conjunto de cambios "incorrecto" a una ubicación remota, puedes '' t elimínelo con los comandos regulares de git, pero tendrá que seguir pasos adicionales para eliminar y volver a crear el repositorio en el servidor y limpiar las páginas almacenadas en caché.


Trate de leer la documentación para git reset . No estoy muy familiarizado con Mercurial, pero si entiendo este documento correctamente, git reset te permitirá hacer lo mismo, es decir, restablecer tu repositorio a un punto anterior en su historial.

Este documento discute el comando de reset con cierto detalle, y este explica brevemente las diferentes opciones para corregir errores.


Como dijo larsks , git reset --hard puede ayudarte a volver al historial que querías:

  1. Encuentre el valor de sha correcto al que desea volver usando el git log .
  2. Ejecute git reset --hard sha para regresar.