Eliminando archivo versionado en git

Publicado: 2020-11-06

Vale, hice mi procedimiento estándar para un nuevo proyecto relacionado con la escritura:

  1. Cree un nuevo repositorio en Bitbucket para guardar las entradas en fase de edición de mi blog.
  2. Cloné dicho repo en mi equipo local.
  3. Cree un nuevo proyecto de Sublime Text dentro del repo.
  4. Edite el README.md y realicé mi primer commit.

Por supuesto, olvidé incluir la referencia a *.sublime-workspace en el .gitignore y, al hacer el commit, ese archivo terminó versionado.

Por supuesto, el archivo *.sublime-workspace no es un archivo que quiera versionado, y por lo tanto es algo que debo eliminar de git, pero no de mi equipo local.

Para ello, podemos ejecutar el comando rm de git, como se muestra:

# Elimina copia del servidor solamente, manteniendo copia local
git rm --cached nombre_de_proyecto.sublime-workspace

La opción --cached es la que indica que se quiere mantener la copia local intacta. En caso de querer eliminar el archivo local támbién, se ejecuta el comando sin ese parámetro:

# Elimina copia local y del servidor.
git rm nombre_de_proyecto.sublime-workspace

Ahora, antes de hacer el commit, hay que asegurar que el archivo del espacio de trabajo de Sublime va a ser ignorado, por lo que agregamos la siguiente línea al .gitignore:

*.sublime-workspace

Ya que sabemos que el archivo no se volverá a versionar, ejecutamos un git status solo para estar seguros, y debe aparecer algo por el estilo:

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    ramoscarlos_blog.sublime-workspace

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   .gitignore

Después de esto, va la operación estándar de commit y push:

git commit -a -m "Eliminado archivo *.sublime-workspace, y agregada restricción a .gitignore"
git push

De esta manera eliminamos un archivo de nuestro repo que no debió ser versionado, conservamos la copia local, y nos aseguramos que no vuelva a ser sincronizado.

¿Tienes algún comentario?

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *