2011-11-11 24 views
6

Incluso es posible eliminar un conjunto de cambios particular de un repositorio de Git. Quiero hacer esto porque hubo una confirmación hace tiempo que agregó algunos archivos binarios que son absolutamente inútiles para la administración de código fuente.¿Eliminar un conjunto de cambios específico del repositorio de Git por completo?

Puedo entender si esto es imposible debido al hecho de que los nodos de confirmación tienen padres y un historial específico, pero supongo que no hará daño preguntar.

Y la respuesta es no a las preguntas que preguntan "¿puedes clonar una nueva copia de la hora antes de que se produzca el compromiso y comenzar desde allí otra vez?".

+0

posible duplicado de [¿Cómo elimino un archivo grande cometido incorrectamente en git] (http://stackoverflow.com/questions/8083282/how-do-i-remove-a-big-file-wrongly-committed- in-git) – antlersoft

Respuesta

8

Use git rebase -i <commit-id>, allí la identificación es una confirmación antes del conjunto de cambios que desea eliminar. Abrirá una lista de confirmaciones entre el encabezado y el conjunto de cambios, eliminará de la lista el compromiso que desee y continuará. Cuando esta confirmación se "desconecte", significa que estará flotando en el repositorio hasta que se recolecte basura. Puede usar git gc para forzarlo.

Sin embargo, debe recordar que todos los clones del repositorio se separarán y que también se deben volver a configurar después.

Cuestiones relacionadas