Está en la página 1de 23

Git & GitLab

Franklin Eduardo Jiménez Giraldo


Sandra Marcela Guerrero C
Definición

Git Sistema de control de versiones

Registra los cambios realizados sobre un archivo o conjunto de archivos a


lo largo del tiempo. Este tipo de sistemas nos permite volver en el tiempo.

Git almacena y maneja la información de forma muy diferente a otros


sistemas, a pesar de que su interfaz de usuario es bastante similar.
Tipos de Sistemas de Control de Versiones

Sistemas de Control de Versiones Locales

Locales: En este tipo el repositorio vive en tu computador.


Tipos de Sistemas de Control de Versiones

Sistemas de Control de Versiones Centralizados

Centralizados: Existe un repositorio central donde se encuentra todo


el código.
Tipos de Sistemas de Control de Versiones

Sistemas de Control de Versiones Distribuidos

Distribuidos: Cada
programador tiene una
copia propia en su
computador del repositorio
original, de esta forma los
cambios que realice de
forma local no afectarán al
resto de programadores
que se encuentran
trabajando para el
proyecto.

Git es distribuido.
Una breve historia de Git

2002 - 2005

⚫ Velocidad
⚫ Diseño sencillo
⚫ Gran soporte para desarrollo no lineal
(miles de ramas paralelas)
⚫ Completamente distribuido
⚫ Capaz de manejar grandes proyectos
(como el kernel de Linux) eficientemente
(velocidad y tamaño de los datos)
Una breve historia de Git
Los tres estados de Git
Instalación de Git

$ yum install git


$ sudo pacman -Syy git
$ apt-get install git
Configuración Inicial “Obligatoria”

git --version

git config --global user.email "frank@udenar.edu.co"


git config --global user.name "Franklin Jiménez"

//color
git config --global color.ui true

git config --list


git config -l
Obteniendo un repositorio Git

Inicializando un repositorio en un directorio existente


$ git init
$ git init [nombre_de_la_carpeta]

Clonando un repositorio existente


$ git clone https://github.com/libgit2/libgit2
$ git clone https://github.com/libgit2/libgit2 mylibgit

Eliminar repositorio
$ rm -rf .git
git add | rm | status

git add -A
Agrega todos los archivos del Working Directory al Staging Area.

git add [file or directory]


Agrega un archivo o carpeta del Working Directory al Staging Area.

git rm --cached [file or directory]


Elimina un archivo o carpeta del Staging Area y lo deja en el Working
Directory.

git rm --f [file or directory]


Fuerza la eliminación de un archivo o carpeta del Staging Area tanto
así que hasta lo borra del Working Directory.

git status
Muestra el estado de los archivos o directorios.
git commit (Confirmando cambios)

git commit -m “mensaje_ejemplo”


pasar todos los archivos que estaban en Staging Area al Repository y
con -m “mensaje_ejemplo” agregamos un mensaje o texto para
especificar que se hizo en ese commit.

git commit --amend


ayuda a agregar archivos que tal vez olvidamos agregar o nuevos
archivos que queremos agregar al ultimo commit que realizamos

git log
muestra el historial de todos los commits que hemos realizado

Saltar el Área de Preparación


$ git commit -a -m 'added new benchmarks'
git tag (Etiquetando confirmaciones)

git tag: permite agregar etiquetas a nuestros cambios.


-a (annotate) {ligeras}
-m (message) {anotadas}
-d (delete)
-l (list)
-f (force)

$ git tag -a [tag] -m ["comentario"]


$ git tag -l
$ git tag [tag] [sha1 del commit]
$ git tag -d [tag]

renombrar el tag del commit pero deja el anterior tag:


$ git tag -f -a [nuevo tag] [sha1 del commit]
git log (Revisando la historia del proyecto)

git log --oneline: Coloca los commits de manera resumida y en una


sola línea.

–graph: Nos mostraria los diferentes commits en las ramas o


bifurcaciones con un asterisco.

-[numero]: Nos permite ver los últimos commits

$ git log --pretty=format:"%h - %an, %ar : %s"


git log (Revisando la historia del proyecto)
git diff (Revisando los cambios entre versiones)

git diff [SHA-1] : Muestra las diferenias del commit [SHA-1] contra el ultimo
commit de la rama en la que actuamente estamos (generalmente master)

git diff [XXX-1] [XXX-2] : Muestra las diferencias del commit [XXX-1]
contra el commit [XXX-2]

Funciona con tag:


$ git diff 0.5 0.3
git reset

git reset --soft [SHA 1]: elimina los cambios hasta el staging area
git reset --mixed [SHA 1]: elimina los cambios hasta el working area
git reset --hard [SHA 1]: regresa hasta el commit del [SHA 1]

$ git reflog
muestra un historial de respaldo de todos los commits realizados a
pesar que fueron borrados
git reset
git branch (Múltiples variantes del repositorio)

git branch [nombre] se crea una nueva rama


-l: listamos las ramas
-d/-D [nombre]: borramos rama
-m [nombre] [nombre_nuevo]: para renombrar ramas

git checkout (Moviéndonos entre ramas y versiones)


git checkout [nombre/sha1]: permite mover entre ramas y entre
commits, no vamos a borrar nada. Acá es donde podemos movernos
en el tiempo.

git checkout -b [nombre_rama]: permite crear una nueva rama sin


necesidad de usar branch
git merge (Mezclando ramas)

git merge [rama]: permite mezclar los cambios realizados en dicha rama
con la rama en la que estamos.

fast-forward: mezcla automáticamente


recursive/auto-merging: ambas ramas salieron al mismo tiempo y hay
algo nuevo en la rama que la otra no recuerda, por eso hace la mezcla
recursiva.
manual merge: toca decirle a git específicamente los cambios que
queremos mezclar
Referencias

Chacon, S. & Straub, B. (2014). Pro Git . online: Apress.

https://apps.co/cuentas/login/?next=/cursos/appsco-curso-
profesional-de-git-y-github/

También podría gustarte