domingo, 4 de agosto de 2013

Eliminando un archivo del historial de commits en git

Esta entrada es un mas bien una recopilacion de los conocimientos adquiridos para resolver el siguiente problema necesitaba eliminar un archivo del historial de commits, es decir de cada commit realizado, ya que el archivo fue agregado en el commit inicial y hasta ahora no había presentado problemas.


El primer intento de como resolverlo fue con las siguientes instrucciones git rm --cached rutadelArchivo/nombreArchivo la cual hace que git deje de trackear ese archivo pero dejándolo en el disco. Después se ejecuta git commit --amend -CHEAD el cual agrega al commit actual el cambio que se acaba de hacer, un nuevo commit no funciona. Posteriormente puede hacer el git push.

Esta solución no me funciono ya que el archivo que necesitaba eliminar no estaba en el ultimo commit,si no en uno muy anterior.

Entonces encontré la siguiente solución, la cual si funciono.
Una sola instrucción, un poco larga y no entiendo del todo que hace cada parte solo se que funciona.
git filter-branch --force --index-filter \
  'git rm --cached --ignore-unmatch rutaArchivo/nombreArchivo' \
  --prune-empty --tag-name-filter cat -- --all
con esa sola instrucción solucione mi problema :)

Links Utiles.
Archivo Grande
Arreglar commits
git filter-branch

No hay comentarios:

Publicar un comentario