Cuando trabajamos con Git, es muy común que se tengan archivos que no queremos incluir en el repositorio, como por ejemplo, archivos de configuración de entornos, como el archivo .env
. En caso de que ya se hayan añadido al repositorio, e incluso subido a un repositorio remoto, es posible que queramos eliminarlos completamente del historial de Git.
En este post, vamos a ver cómo eliminar un archivo .env del historial de Git, y este proceso es válido para cualquier otro archivo que no queramos que Git tenga en cuenta.
Eliminar un archivo .env del historial de Git
En el siguiente ejemplo, accidentalmente añadimos el archivo .env
a nuestro repositorio, y lo subimos a un repositorio remoto.
Nota: En caso de que este escenario suceda, es importante actualizar las keys de acceso a los servicios que tengamos configurados en el archivo
.env
.
Añadir el archivo al archivo .gitignore
El primer paso es añadir el archivo .env
al archivo .gitignore
, para que Git no lo tenga en cuenta en el futuro.
En mi caso lo añado al final del archivo .gitignore
:
# .gitignore
# ...
.env
A continuación, se realiza un commit con la modificación realizada en el archivo .gitignore
.
Como podemos ver, el archivo .env
aún sigue apareciendo en el historial de Git, incluso después de haberlo añadido al archivo .gitignore
. Por lo tanto, se puede ver que el archivo .gitignore
no deshace los cambios que ya se han realizado en el repositorio. Entonces ¿Cómo podemos eliminar el archivo .env
del historial de Git?
Eliminar un archivo solo de Git
Para eliminar un archivo solo de Git, podemos utilizar el comando git rm -r --cached <file>
. En este caso el archivo que queremos eliminar es el archivo .env
:
git rm -r --cached .env
Si realizamos un commit con este cambio, el archivo .env
ya no aparecerá en Github.
Sin embargo, esto no resuelve completamente el problema. Si revisamos el historial de Git, podemos ver que el archivo .env
sigue apareciendo con todo su contenido.
Eliminar completamente un archivo del historial de Git
Para eliminar por completo el archivo .env
del historial de Git, podemos utilizar siguiente comando:
git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch .env" HEAD
Nota: Este comando puede tardar un poco en ejecutarse, dependiendo del tamaño del repositorio y generar algunas advertencias, ya que se está modificando el historial de Git.
Para realizar un push
de los cambios realizados, es necesario utilizar el comando git push --force
, en este caso al branch main
:
git push --force origin main
Si revisamos el historial nuevamente, podemos ver los commits que incluyen el archivo .env
, pero no podemos ver el contenido del archivo, por lo que el archivo .env
ya no aparece en el historial de Git.
Listo! Ya hemos eliminado el archivo .env
del historial de Git, y ahora podemos seguir trabajando con Git sin tener que preocuparnos por este archivo.
Este proceso puede ser aplicado a cualquier otro archivo que no queramos que Git tenga en cuenta.
Top comments (1)
que buen aporte