Mis cambios malograron el proyecto, pero lo solucioné con Git

¿Alguna vez has estropeado un proyecto con tus cambios? Tranquilo, si usas Git puedes hacer "CTRL Z" y es muy sencillo. Y si no usas Git, deberías.

Diseño web
2 minutos
Hace 7 años
Mis cambios malograron el proyecto, pero lo solucioné con Git

¡Accede a cientos de cursos
con solo un pago al año!

Blog Microbanner

Cuando estamos trabajando con git, creando X funcionalidad en una rama Y, podemos encontrarnos en una situación en la que queramos regresar al estado inicial, al punto en el que las cosas estaban funcionando bien antes de agregar cambios que resultaron perjudiciales para el proyecto.

Por ejemplo, tengo un proyecto en el que modifiqué mi archivo index.html y creé un nuevo archivo llamado chat.js y otro llamado chat.jsx dentro de la carpeta components. Al hacer un git status obtengo lo siguiente:

1~/Desktop/proyecto master ✗ 0m ⚑ ◒ 2git status 3On branch master 4Changes not staged for commit: 5 (use "git add <file>..." to update what will be committed) 6 (use "git checkout -- <file>..." to discard changes in working directory) 7 8 modified: index.html 9 10Untracked files: 11 (use "git add <file>..." to include in what will be committed) 12 13 chat.js 14 components/chat.jsx 15 16no changes added to commit (use "git add" and/or "git commit -a") 17

Supongamos entonces que los cambios que hice provocaron que el proyecto dejara de funcionar, por lo cual quiero devolver todo a como estaba antes.

Aprende Git Desde Cero en EDteam

Para resolver esta situación ejecutamos el comando git checkout . Esto "deshace" los cambios que hayamos hecho en los archivos a los que Git les está haciendo seguimiento (el punto indica que deshaga todos los cambios de todos los archivos, si quieres de un archivo especifico pones su ruta en lugar del punto):

1~/Desktop/proyecto master ✗ 0m ⚑ ◒ 2git checkout .

En nuestro ejemplo, sólo deshace los cambios que le haya hecho a index.html, no afecta a los archivos nuevos que creé por que no están seguidos con Git:

1~/Desktop/proyecto master ✗ 0m ⚑ ◒ 2git status 3On branch master 4 5Untracked files: 6 (use "git add <file>..." to include in what will be committed) 7 8 chat.js 9 components/chat.jsx 10 11no changes added to commit (use "git add" and/or "git commit -a")

Es aquí donde resulta útil usar el comando git clean -f, que eliminará los archivos que aún no sigamos con Git, dejando limpio nuestro árbol de trabajo

1~/Desktop/proyecto master ✗ 2m ◒ 2git clean -f 3Removing chat.js 4Removing components/chat.jsx

Ya en este punto mi proyecto está libre de los desastres que representaban los archivos que creé ?

Aprende PHP7 en EDteam

Si quieres aprender más sobre el comando git clean te invito a ver la documentación en https://git-scm.com/docs/git-clean

Eso es todo por ahora, nos leemos en el siguiente artículo.

Comentarios de los usuarios