Vous êtes sur la page 1sur 34

GIT

El control de versiones es un sistema


que registra los cambios realizados
sobre un archivo o conjunto de
archivos a lo largo del tiempo, de
modo que puedas recuperar versiones
especficas ms adelante.

2
Los tipos de Sistemas de control de versiones
sistemas de
locales
control son:

Sistemas de control de versiones


centralizados

Sistemas de control de versiones


distribuidos

3
Sistemas de Los programadores desarrollaron hace tiempo VCSs
locales que contenan una simple base de datos en la que se
control de llevaba registro de todos los cambios realizados sobre los
versiones archivos
locales

4
No depende nicamente de un computador en el que se
Sistema de
trabaja, sino que depende de un servidor en donde se almacena
control de la informacin. El servidor provee las copias a sus hijos, pero
versiones solo guarda los cambios en un solo lugar.

centralizados
(Centralized
Version
Control
Systems o
CVCSs en
ingls).

5
Cada uno de los que participan en el proyecto, tienen copia del
Sistemas de
proyecto que se realiza, por eso no dependemos de un solo
control de computador que almacene toda la informacin.
versiones
distribuidos.
(Distributed
Version
Control
Systems o
DVCSs en
ingls)

6
Los Git fue creado por Linus Torvalds
beneficios de
git. Velocidad

Diseo sencillo

Fuerte apoyo al desarrollo no lineal (miles de ramas paralelas)

Completamente distribuido

Capaz de manejar grandes proyectos

7
Fundamentos de git
8
La mayora de los dems sistemas almacenan la informacin como una
Instantneas, lista de cambios en los archivos.
no
diferencias

9
Git modela sus datos ms como un conjunto de instantneas de un mini
Instantneas, sistema de archivos.
no Cada vez que confirmas o guardas un cambio, Git bsicamente
diferencias hace una foto del aspecto de todos tus archivos en ese momento,
y guarda una referencia a esa instantnea. Si los archivos no se
han modificado, Git no almacena el archivo de nuevo, slo un
enlace al archivo anterior idntico que ya tiene almacenado.

10
Casi
cualquier La mayora de las operaciones en Git slo necesitan archivos y
recursos locales para operar. Como tienes toda la historia del
operacin es proyecto ah mismo, en tu disco local, la mayora de las
local operaciones parecen prcticamente inmediatas.

Puedes obtener el historial del proyecto


Ver los cambios entre la versin actual y la de hace un mes
Puedes confirmar tus cambios hasta que consigas conexin
para subirlos.

11
Todo en Git es verificado mediante una suma de
Git tiene comprobacin (checksum en ingls) .
integridad El mecanismo que usa Git para generar esta suma de
comprobacin se conoce como hash SHA-1. Se trata de una
cadena de 40 caracteres hexadecimales (0-9 y a-f), y se
calcula en base a los contenidos del archivo o estructura de
directorios. Un hash SHA-1 tiene esta pinta:
24b9da6552252987aa493b52f8696cd6d3b00373

12
Git
generalment Cuando realizas acciones en Git, casi todas ellas slo aaden
informacin a la base de datos de Git. Como en cualquier VCS,
e slo aade puedes perder o estropear cambios que no has confirmado
informacin todava; pero despus de confirmar una instantnea en Git, es
muy difcil de perder, especialmente si envas (push) tu base de
datos a otro repositorio con regularidad.

13
Los 3 Los 3 estados en los que se pueden encontrar tus archivos.
estados
Confirmado (committed): significa que los datos estn
almacenados de manera segura en tu base de datos local.
Modificado (modified): significa que has modificado el archivo
pero todava no lo has confirmado a tu base de datos.
Preparado(staged): significa que has marcado un archivo
modificado en su versin actual para que vaya en tu prxima
confirmacin.

14
Los 3
Las 3 secciones principales de un proyecto de Git:
estados
El directorio de trabajo (Working directory) significa que has
modificado el archivo pero todava no lo has confirmado a tu
base de datos. Es donde trabajamos de manera local.

rea de preparacin (staging area): Almacena informacin


acerca de lo que va a ir en tu prxima confirmacin.

El directorio de Git (Git directory): significa que los datos


estn almacenados de manera segura en tu base de datos
local.

15
El flujo de trabajo bsico en Git es algo as:
Los 3 Modificas una serie de archivos en tu directorio de trabajo.

estados
Preparas los archivos, aadiendolos a tu rea de preparacin.
Confirmas los cambios, lo que toma los archivos tal y como estn en el
rea de preparacin, y almacena esas instantneas de manera
permanente en tu directorio de Git.

16
cd : Nos permite movernos dentro de carpetas. Con cd podemos salir
Comandos de las carpetas.
mkdir : Para crear carpetas y ponemos el nombre de la carpeta que
tiles en la vamos a crear.

terminal
ls : Vamos a ver las carpetas que tenemos creadas.
clear : Para limpiar la terminal. Este nos sirve para hacer scroll e ir al
principio de la terminal.
touch : Nos permite crear archivos.
rm [file] : Nos sirve para borrar archivos indicando el nombre del archivo.
rm -rf [carpeta]: De la misma forma para borrar carpetas usamos rm -rf y
el nombre de la carpeta.
Otra herramienta que vamos a usar dentro de Git para editar archivos
con el editor que tengamos en nuestra mquina pero dentro de la
terminal.
Con el comando _:wq _vamos a guardar los cambios que hicimos dentro
del archivo que habamos creado.
- : w (write) q (quit)

17
Fundamentos
Flujos de trabajos en Git

18
Creando
git init nombre-carpeta
repositorios
Practicando
(git init) Vamos a crear una carpeta e iniciamos con git llamado primer_repo.

Creamos una segunda carpeta segundo_repo

Ingresamos a segundo_repo e inicializamos con git.

Vamos a verificar las carpetas y listar todas las carpetas

Ingresamos al primer repositorio primer_repo

Creamos un archivo llamado file.txt.

Eliminamos el archivo file.txt

Elimanos la carpeta.

19
Vamos a crear una carpeta llamada invie e inicializamos con git
Agregando, Ingresamos a la carpeta

quitando y
Creamos un archivo index.html
git status : Vemos el estado de nuestro archivo
viendo el git add nombre-archivo : Agregamos nuestro archivo staging
Denuevo vemos el estado de nuestro archivo
estatus de git rm --cached : Para eliminar de staging.
archivos (git Creamos un archivo index.css
add | rm | git add -A / git add .. : Agregamos todos los archivos a staging

status) git rm -f [file] : Elimina el archivo por completo de staging y del


working directory.

git add -n [file]: Confirma si tienes agregado un archivo en el


directorio.

20
Ahora tenemos que pasar nuestros archivos al repositorio
y para eso debemos usar git commit que es el comando
Confirmando que nos va a permitir comprometer nuestros archivos.
cambios (git
commit) git commit -m nombre-commit : Permite confirmar
cambios. Los nombres deben ser descriptivos.
git commit -m --amend nuevo nombre : Cambia el
nombre del ltimo commit.
git show --name-only <commit> : Muestra que archivos
conforma el commit.

Practicando
- Realizar 2 commits:
- Agregando el header
- Agregando nuevo hero
- Agregar clasica.jpg y footer.jpg como ltimo
commit

21
Revisando la git log : Podemos revisar la historia de nuestro proyecto.
Muestran los cdigos hexadecimles que crea Sha-1, el autor
historia de y la fecha en la que se envi el ese commit.
nuestro git log --oneline : Muestra los commits de forma ms
resumida.
proyecto (git
Podemos personalizar nuestros comandos.
log) git config --global alias.superlog "log --graph --abbrev-commit --
decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) -
%C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)-
%an%C(reset)%C(bold yellow)%d%C(reset)' --all"
git log --graph : Muestra el grafico del proyecto.
git log -num / git log -2 : Permite ver los dos ultimos
commits.

22
Revisando
los cambios
entre
versiones (git git diff [SHA1] / nombre-commit : Muestra las
diferencias del commit [SHA-1] contra el ltimo.
diff) git diff [SHA1v1] [SHA1v2] : Compara los cambios.

23
Git reset

git reset -- soft

git reset -- mixed

git reset --hard

24
git reset -- Alguna vez tuviste un error y quisiste borrar el commit que
habas enviado. Para esto podemos hacer a travs de git
soft reset.

git reset --soft [SHA1] : Nos permite quitar los cambios de


un commit especfico. Deja los archivos en el staging area, listos
para hacer un commit. Los archivos que estaban en el git directory
pasan al staging area.

git log > bitacora_log.txt : Guarda los sha1 en un archivo


de texto.

25
git reset -- Podemos ver que nos descarta cambios del stage.
Lo podemos usar para hacer cambios a los commits en los
mixed que pudimos tener algunos errores.

git reset --mixed [SHA1] : Elimina el commit y los archivos


se quitan en el staging rea, los archivos fsicos se mantienen. Los
archivos se mantienen en el working directory (en rojo).

26
git reset -- Con el git reset hard vamos a hacer resets que sern
definitivos.
hard
Se recomienda tener un archivo con los sha1.
git reset --hard : Elimina los archivos que estn en el staging
area y tambin los elimina del working directory. Esos archivos no
se pueden recuperar.
git reset --hard sha1 : Se puede retroceder en el tiempo,
indicando el sha-1. Por ejm podemos volver al primer commit y
todos los commit se resetean. Pero tambin se puede volver al
ltimo commit, con tal que se tenga los sha.

27
Fundamentos
Mltiples entornos de trabajos

28
Mltiples Comenzamos con Master que es la rama principal, sin
embargo, podemos crear ramas para que el equipo pueda
variantes del trabajar en el proyecto.
repositorio
git branch [nombre] : se crea una nueva rama. Debemos estar
(git branch) ubicados en master.
git branch -l : listamos las ramas
git branch d/-D [nombre] : borramos rama
git branch -m [nombre] [nombre_nuevo] : para renombrar
ramas

29
Movindonos Con git checkout podemos movernos en el tiempo, pero no
borramos nada de los dems commits que ya hemos
entre ramas creado.
y versiones
git checkout [nombre/sha1]: Nos permite mover entre ramas y
(git checkout) entre commits, no vamos a borrar nada. Ac es donde podemos
movernos en el tiempo.
git checkout -b [nombre_rama]: reamos una rama nueva y nos
movemos a esa rama.
Practicando
- Crear la rama nueva-imagen
- Crear la rama RD
- Crear la rama hotfix
- Verificar que las ramas se han creado

30
hotfix
Trabajando Se requiere agregar un border de 10px en el body.
entre ramas Nombre del cambio: Hotfix 1
nueva-imagen
Solo quiere que vaya una imagen nueva-version.jpg
Nombre del cambio: Nueva version de invie -verde
RD
Usar la imagen invie-responsive.png cuando la pantalla tenga
768px o menos.
@media screen and (max-width: 768px) {
}

31
Lo primero que tengo que hacer para mezclar ramas es
Mezclando pararme sobre la rama que quiero mezclar o con la rama
ramas y que quiero que tenga los cambios.

resolviendo
git merge [rama]: Nos permite mezclar los cambios realizados
conflictos (git en dicha rama con la rama en la que estamos.
Practicando
merge) - Hacemos merge a la rama hotfix

32
git merge [rama]: Nos permite mezclar los cambios realizados
Mezclando en dicha rama con la rama en la que estamos.
Practicando
ramas y - Hacemos merge a la rama RD
resolviendo
conflictos (git
merge)

33
Practicando
Mezclando - Hacemos merge a la rama nueva-imagen
- Conservamos los cambios invie-verde y el responsive.
ramas y - Luego de resolver el conflicto, se realiza un commit.
resolviendo
conflictos (git
merge)

34

Vous aimerez peut-être aussi