Deshacer cambios#
Última modificación: Mayo 14, 2022
Preparación del proyecto#
[ ]:
!rm -rf git-demo
!mkdir git-demo
%cd git-demo
Preparación commits iniciales#
[ ]:
%%sh
git init
git config user.email "you@example.com"
git config user.name "john doe"
touch file_1.txt file_2.txt
git add *.txt
git commit -m 'create file_1.txt file_2.txt files'
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt ## create file_1.txt file_2.txt files
(emtpy) file_1.txt
file_2.txt (empty)
(empty) file_2.txt
(empty)
[ ]:
%%sh
echo 'Hola mundo cruel!' > file_2.txt
git add file_2.txt
git commit -m 'modify file_2.txt file'
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt ### create file_1.txt file_2.txt files
(emtpy) file_1.txt
file_2.txt (empty)
Hola mundo cruel! file_2.txt
(empty)
### modify file_2.txt file
file_2.txt
Hola mundo cruel!
[ ]:
%%sh
touch file_to_ignore.txt
echo "file_to_ignore.txt" > .gitignore
git add .gitignore
git commit -m 'create .gitignore'
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt ### create file_1.txt file_2.txt files
(emtpy) file_1.txt
file_2.txt (empty)
Hola mundo cruel! file_2.txt
file_to_ignore.txt (empty)
(empty) ### modify file_2.txt file
.gitignore file_2.txt
file_to_ignore.txt Hola mundo cruel!
### create .gitignore
.gitignore
file_to_ignore.txt
[ ]:
!git log
Agregar al último commit#
[ ]:
!echo "other_file_to_ignore.txt" >> .gitignore
!git add .gitignore
!git commit --amend -m "create a new .gitignore"
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt ### create file_1.txt file_2.txt files
(emtpy) file_1.txt
file_2.txt (empty)
Hola mundo cruel! file_2.txt
file_to_ignore.txt (empty)
(empty) ### modify file_2.txt file
.gitignore file_2.txt
file_to_ignore.txt Hola mundo cruel!
other_file_to_ignore.txt ### create a new .gitignore
other_file_to_ignore.txt .gitignore
(empty) file_to_ignore.txt
other_file_to_ignore.txt
[ ]:
!git log
Unstaging#
[ ]:
# Se crean los dos archivos y se hace un add con ambos
!touch file_3.txt
!touch file_4.txt
!git add file_3.txt file_4.txt
!git status
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt file_3.txt ### create file_1.txt file_2.txt files
(emtpy) (empty) file_1.txt
file_2.txt file_4.txt (empty)
Hola mundo cruel! (empty) file_2.txt
file_to_ignore.txt (empty)
(empty) ### modify file_2.txt file
.gitignore file_2.txt
file_to_ignore.txt Hola mundo cruel!
other_file_to_ignore.txt ### create a new .gitignore
other_file_to_ignore.txt .gitignore
(empty) file_to_ignore.txt
file_3.txt other_file_to_ignore.txt
(empty)
file_4.txt
(empty)
[ ]:
# Se desea un commit individual para cada archivo.
# Se saca file_4.txt
!git reset HEAD file_4.txt
!git status
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt file_3.txt ### create file_1.txt file_2.txt files
(emtpy) (empty) file_1.txt
file_2.txt (empty)
Hola mundo cruel! file_2.txt
file_to_ignore.txt (empty)
(empty) ### modify file_2.txt file
.gitignore file_2.txt
file_to_ignore.txt Hola mundo cruel!
other_file_to_ignore.txt ### create a new .gitignore
other_file_to_ignore.txt .gitignore
(empty) file_to_ignore.txt
file_3.txt other_file_to_ignore.txt
(empty)
file_4.txt
(empty)
[ ]:
!git commit -m "create file_3.txt"
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt ### create file_1.txt file_2.txt files
(emtpy) file_1.txt
file_2.txt (empty)
Hola mundo cruel! file_2.txt
file_to_ignore.txt (empty)
(empty) ### modify file_2.txt file
.gitignore file_2.txt
file_to_ignore.txt Hola mundo cruel!
other_file_to_ignore.txt ### create a new .gitignore
other_file_to_ignore.txt .gitignore
(empty) file_to_ignore.txt
file_3.txt other_file_to_ignore.txt
(empty) ### create file_3.txt
file_4.txt file_3.txt
(empty) (empty)
[ ]:
!git add file_4.txt
!git commit -m "create file_4.txt"
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt ### create file_1.txt file_2.txt files
(emtpy) file_1.txt
file_2.txt (empty)
Hola mundo cruel! file_2.txt
file_to_ignore.txt (empty)
(empty) ### modify file_2.txt file
.gitignore file_2.txt
file_to_ignore.txt Hola mundo cruel!
other_file_to_ignore.txt ### create a new .gitignore
other_file_to_ignore.txt .gitignore
(empty) file_to_ignore.txt
file_3.txt other_file_to_ignore.txt
(empty) ### create file_3.txt
file_4.txt file_3.txt
(empty) (empty)
### create file_4.txt
file_4.txt
(empty)
[ ]:
!git log
Restaurar la última versión guardada#
[ ]:
!echo "linea 1" >> file_4.txt
!git add file_4.txt
!cat file_4.txt
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt file_4.txt ### create file_1.txt file_2.txt files
(emtpy) linea 1 file_1.txt
file_2.txt (empty)
Hola mundo cruel! file_2.txt
file_to_ignore.txt (empty)
(empty) ### modify file_2.txt file
.gitignore file_2.txt
file_to_ignore.txt Hola mundo cruel!
other_file_to_ignore.txt ### create a new .gitignore
other_file_to_ignore.txt .gitignore
(empty) file_to_ignore.txt
file_3.txt other_file_to_ignore.txt
(empty) ### create file_3.txt
file_4.txt file_3.txt
linea 1 (empty)
### create file_4.txt
file_4.txt
(empty)
[ ]:
!echo "linea 2" >> file_4.txt
!git add file_4.txt
!cat file_4.txt
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt file_4.txt ### create file_1.txt file_2.txt files
(emtpy) linea 1 file_1.txt
file_2.txt file_4.txt (empty)
Hola mundo cruel! linea 1 file_2.txt
file_to_ignore.txt linea 2 (empty)
(empty) ### modify file_2.txt file
.gitignore file_2.txt
file_to_ignore.txt Hola mundo cruel!
other_file_to_ignore.txt ### create a new .gitignore
other_file_to_ignore.txt .gitignore
(empty) file_to_ignore.txt
file_3.txt other_file_to_ignore.txt
(empty) ### create file_3.txt
file_4.txt file_3.txt
linea 1 (empty)
linea 2 ### create file_4.txt
file_4.txt
(empty)
[ ]:
!echo "linea 3" >> file_4.txt
!cat file_4.txt
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt file_4.txt ### create file_1.txt file_2.txt files
(emtpy) linea 1 file_1.txt
file_2.txt file_4.txt (empty)
Hola mundo cruel! linea 1 file_2.txt
file_to_ignore.txt linea 2 (empty)
(empty) file_4.txt ### modify file_2.txt file
.gitignore linea 1 file_2.txt
file_to_ignore.txt linea 2 Hola mundo cruel!
other_file_to_ignore.txt linea 3 ### create a new .gitignore
other_file_to_ignore.txt .gitignore
(empty) file_to_ignore.txt
file_3.txt other_file_to_ignore.txt
(empty) ### create file_3.txt
file_4.txt file_3.txt
linea 1 (empty)
linea 2 ### create file_4.txt
linea 3 file_4.txt
(empty)
[ ]:
# Se deshace el cambio en el archivo
!git checkout -- file_4.txt
!cat file_4.txt
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt file_4.txt ### create file_1.txt file_2.txt files
(emtpy) linea 1 file_1.txt
file_2.txt file_4.txt (empty)
Hola mundo cruel! linea 1 file_2.txt
file_to_ignore.txt linea 2 (empty)
(empty) ### modify file_2.txt file
.gitignore file_2.txt
file_to_ignore.txt Hola mundo cruel!
other_file_to_ignore.txt ### create a new .gitignore
other_file_to_ignore.txt .gitignore
(empty) file_to_ignore.txt
file_3.txt other_file_to_ignore.txt
(empty) ### create file_3.txt
file_4.txt file_3.txt
linea 1 (empty)
linea 2 ### create file_4.txt
file_4.txt
(empty)
[ ]:
!git status
Deshacer el útimo add#
[ ]:
!echo "linea 3" >> file_4.txt
!git add file_4.txt
!git status
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt file_4.txt ### create file_1.txt file_2.txt files
(emtpy) linea 1 file_1.txt
file_2.txt file_4.txt (empty)
Hola mundo cruel! linea 1 file_2.txt
file_to_ignore.txt linea 2 (empty)
(empty) file_4.txt ### modify file_2.txt file
.gitignore linea 1 file_2.txt
file_to_ignore.txt linea 2 Hola mundo cruel!
other_file_to_ignore.txt linea 3 ### create a new .gitignore
other_file_to_ignore.txt .gitignore
(empty) file_to_ignore.txt
file_3.txt other_file_to_ignore.txt
(empty) ### create file_3.txt
file_4.txt file_3.txt
linea 1 (empty)
linea 2 ### create file_4.txt
linea 3 file_4.txt
(empty)
[ ]:
!git restore --staged file_4.txt
!git diff -v
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt ### create file_1.txt file_2.txt files
(emtpy) file_1.txt
file_2.txt (empty)
Hola mundo cruel! file_2.txt
file_to_ignore.txt (empty)
(empty) ### modify file_2.txt file
.gitignore file_2.txt
file_to_ignore.txt Hola mundo cruel!
other_file_to_ignore.txt ### create a new .gitignore
other_file_to_ignore.txt .gitignore
(empty) file_to_ignore.txt
file_3.txt other_file_to_ignore.txt
(empty) ### create file_3.txt
file_4.txt file_3.txt
linea 1 (empty)
linea 2 ### create file_4.txt
linea 3 file_4.txt
(empty)
[ ]:
!git status
Restaurar el archivo original desde el ultimo commit#
[ ]:
!git restore file_4.txt
!git status
Working Staging .git
Tree Area directory
-------------------------------------------------------------------------------------
file_1.txt ### create file_1.txt file_2.txt files
(emtpy) file_1.txt
file_2.txt (empty)
Hola mundo cruel! file_2.txt
file_to_ignore.txt (empty)
(empty) ### modify file_2.txt file
.gitignore file_2.txt
file_to_ignore.txt Hola mundo cruel!
other_file_to_ignore.txt ### create a new .gitignore
other_file_to_ignore.txt .gitignore
(empty) file_to_ignore.txt
file_3.txt other_file_to_ignore.txt
(empty) ### create file_3.txt
file_4.txt file_3.txt
(empty) (empty)
### create file_4.txt
file_4.txt
(empty)
[ ]:
!cat file_4.txt
[ ]:
# --< Limpieza del área de trabajo >-------------------------------------------
%cd ..
!rm -rf git-demo