git show “archivo”:
Muestra los cambios realizando al archivo respecto a la última versióngit diff <código commit1><código commit2>:
A través de este comando podremos comparar versiones del archivo de la misma forma que se muestra en git show
. Sin embargo, aquí estamos escogiendo las versiones que deseamos comparar. El código commit se encuentra en la lista de cambios que aparece al realizar git log
git diff:
Así solo sin ningún código de commit, nos muestra los cambios realizados comparados entre lo que hay en staging y lo que hay en nuestro disco duroCuando trabajamos con Git nuestros archivos pueden vivir y moverse entre 4 diferentes estados (cuando trabajamos con repositorios remotos pueden ser más estados, pero lo estudiaremos más adelante):
git add
y git commit
.git add
, aunque no sus últimos cambios. Git ya sabe de la existencia de estos últimos cambios, pero todavía no han sido guardados definitivamente en el repositorio porque falta ejecutar el comando git commit
.git add
ni mucho menos por git commit
. Git tiene un registro de estos archivos, pero está desactualizado, sus últimas versiones solo están guardadas en el disco duro.git add
, así que Git no tiene registros de su existencia. Recuerda que hay un caso muy raro donde los archivos tienen dos estados al mismo tiempo: staged y untracked. Esto pasa cuando guardas los cambios de un archivo en el área de Staging (con el comando git add
), pero antes de hacer commit para guardar los cambios en el repositorio haces nuevos cambios que todavía no han sido guardados en el área de Staging (en realidad, todo sigue funcionando igual pero es un poco divertido).Comandos para mover archivos entre los estados de Git:
git status
: nos permite ver el estado de todos nuestros archivos y carpetas.git add
: nos ayuda a mover archivos del Untracked o Unstaged al estado Staged. Podemos usar git nombre-del-archivo-o-carpeta
para añadir archivos y carpetas individuales o git add -A
para mover todos los archivos de nuestro proyecto (tanto Untrackeds como unstageds).git reset HEAD
: nos ayuda a sacar archivos del estado Staged para devolverlos a su estado anterior. Si los archivos venían de Unstaged, vuelven allí. Y lo mismo se venían de Untracked.git commit
: nos ayuda a mover archivos de Unstaged a Tracked. Esta es una ocasión especial, los archivos han sido guardados o actualizados en el repositorio. Git nos pedirá que dejemos un mensaje para recordar los cambios que hicimos y podemos usar el argumento m
para escribirlo (git commit -m "mensaje"
).git rm
: este comando necesita alguno de los siguientes argumentos para poder ejecutarse correctamente:git rm --cached
: Mueve los archivos que le indiquemos al estado Untracked.git rm --force
: Elimina los archivos de Git y del disco duro. Git guarda el registro de la existencia de los archivos, por lo que podremos recuperarlos si es necesario (pero debemos usar comandos más avanzados)git reset <código commit> --soft:
Elimina las versiones posteriores a la que queremos volver, sin embargo, los archivos staging siguen intactos. Es decir, la información sigue estando en nuestro disco duro y en staging. Para recuperarlos, simplemente hay que hacer un commit de lo que esta en staging