Agregando, quitando y viendo el estatus de archivos con git add, git rm y git status

← Fundamentos de Git y GitHub ⌂ Home

Agregando, quitando y viendo el estatus de archivos

Pasos iniciales

Creamos un nuevo repositorio para utilizarlo como pruebas con el comando git init landing_page y dentro creamos un archivo con el comando touch llamado index.html.

➜  Desktop git init landing_page
Initialized empty Git repository in /Users/alejandrozepeda/Desktop/landing_page/.git/
➜  Desktop cd landing_page 
➜  landing_page git:(master) touch index.html
➜  landing_page git:(master) ✗ 

Nota: Podemos ver que en la terminal al entrar a la carpeta aparece lo siguiente git:(master) y algunos símbolos como git:(master) ✗ esto se debe a que se encuentra instalado ohmyz.

Estado de los archivos con git status

Para ver el estado de los archivos utilizamos el comando git status.

➜  landing_page git:(master) ✗ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    index.html

nothing added to commit but untracked files present (use "git add" to track)

Podemos observar que index.html está marcado como Untracked file.

Untracked files (Archivos no rastreados): Son archivos que están en nuestro Working Directory y que han sido modificados o agregados recientemente. Git ve que no los tenías en tu commit anterior y Git no los incluirá en tu próximo commit a menos que se lo indiquemos explicitamente.

Agregando/Rastreando archivos a Staging Area con git add

Para comenzar a rastrear nuestros archivos (agregarlos a Staging Area) utilizamos el comando git add [archivo]

➜  landing_page git:(master) ✗ git add index.html 

Para comprobar ejecutamos git status

➜  landing_page git:(master) ✗ git status        
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   index.html

Podemos observar que ahora nuestro archivo está siendo rastreado y nos dice que hay un nuevo archivo para que se confirme Changes to be committed. ¿Pero qué pasa si no queríamos agregar ese archivo?

Sacando el archivo de Staging Area con git rm --cached

Para sacar archivos de Staging Area utilizamos el comando git rm --cached [archivo]

➜  landing_page git:(master) ✗ git rm --cached index.html 
rm 'index.html'
➜  landing_page git:(master) ✗ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    index.html

nothing added to commit but untracked files present (use "git add" to track)

Podemos observar que ahora el estado ha regresado a untracked file.

Agregando varios archivos a Staging Area al mismo tiempo con git add -A

Creamos un nuevo archivo en nuestro directorio y vemos su status.

➜  landing_page git:(master) ✗ touch styles.css
➜  landing_page git:(master) ✗ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    index.html
    styles.css

nothing added to commit but untracked files present (use "git add" to track)

Y ejecutamos el comando git add -A y vemos el status.

➜  landing_page git:(master) ✗ git add -A
➜  landing_page git:(master) ✗ git status 
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   index.html
    new file:   styles.css

Observamos que ahora los dos archivos se encuentran en el Staging Area.

Forzar la eliminación de un archivo del Working Directory y Staging Area con git rm -f

Para eliminar un archivo por completo de nuestro Working Directory y Staging Area usamos el comando git rm -f [archivo]

➜  landing_page git:(master) ✗ git rm -f styles.css
rm 'styles.css'
➜  landing_page git:(master) ✗ git status          
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   index.html

Observamos que styles.css ya no aparece en ningún lugar.

Resumen de comandos

Referencias