You are on page 1of 45

Git

Sistema de control de versiones


Los tres estados/zonas
Flujo de trabajo básico en Git
1. Modificas una serie de archivos en tu directorio de trabajo.
2. Preparas los archivos, añadiéndolos a tu área de preparación.
3. Confirmas los cambios, lo que toma los archivos tal y como están en el
área de preparación y almacena esa copia instantánea de manera
permanente en tu directorio de Git.
Configurando Git por primera vez
git config --global user.name "John Doe"
git config --global user.email
johndoe@example.com
git config --global core.editor nano
git config --list
Ejemplo, ayuda de config:

Obtener ayuda git help config

git help <verb> git config --help


git <verb> --help
Clase 2
Guardando cambios en el repositorio
Git recibe una copia de casi todos
los datos que tiene el servidor.
git clone Cada versión de cada archivo de
la historia del proyecto es
Obtiene una copia de un
descargada por defecto.
repositorio Git existente
git init
Se puede usar en una carpeta
vacía o en una que ya contenga
archivos.
Inicia un repositorio git en la
carpeta actual
git status
git status On branch master
nothing to commit, working
Revisa el estado de nuestros directory clean
archivos
El ciclo de vida del estado de nuestros archivos
git commit Los archivos preparados pasan a
ser parte del historial de cambios.
Confirma los archivos
preparados
git add git add README.md

Agrega un archivo a la zona de


preparación (stage)
.gitignore https://www.gitignore.io/

Patrones de nombres de
archivos que git ignorará
git diff
Compara lo que tenemos en el
directorio de trabajo con lo que
está en el área de preparación.
Muestra los cambios que aún
no se han preparado
git diff --staged
Compara nuestros cambios
preparados con la última
instantánea confirmada.
Muestra los cambios de los
archivos preparados
Clase 3
Commit sin usar el editor
git commit -m “Explicación de los

git commit -m cambios realizados”

Confirma los cambios preparados


Confirma sin usar el editor sin abrir el editor.
Git prepara
git commit -a -m automáticamente todos los
archivos rastreados antes de
Salta el área de preparación confirmarlos.
Elimina archivos rastreados del

git rm
repositorio y de nuestro directorio
de trabajo de manera que no
aparezcan la próxima vez como
Elimina archivos archivos no rastreados.
git mv git mv file_from file_to

Renombra archivos
Entre las opciones del comando
podemos encontrar:

--oneline: nos muestra el historial


git log abreviado.

--graph: añade un pequeño


Muestra el historial de
gráfico ASCII mostrando el
confirmaciones historial de ramificaciones y
uniones.
Clase 4
Comandos para deshacer
Este comando utiliza el área de
preparación para la confirmación.

git commit --amend Al final terminarás con una sola


confirmación - la segunda
Rehace la confirmación confirmación reemplaza el
resultado de la primera.
git reset HEAD
<file>...
El archivo o los archivos salen del
área de preparación y se quedan
en el directorio de trabajo.
Deshace la preparación
Este es un comando peligroso.

Cualquier cambio que le hayas

git checkout -- [file]


hecho a file desaparecerá.

Nunca utilices este comando a


Descarta un archivo menos que estés absolutamente
modificado seguro de que ya no quieres los
cambios del archivo.
Clase 5
Etiquetas
Este comando lista las etiquetas
git tag en orden alfabético; el orden en el
que aparecen no tiene mayor
Lista las etiquetas importancia.
git tag v1.1-dev

Una etiqueta ligera no es más que

Etiqueta ligera el checksum de un commit


guardado en un archivo, no
incluye más información. Para
crear una etiqueta ligera, no
pasamos las opciones -a, -s ni -m:
git tag -a v1.0 -m 'my version 1.0'

Se guardan en la base de datos de

Etiqueta anotada Git como objetos enteros. Tienen


un checksum; contienen el
nombre del etiquetador, correo
electrónico y fecha; y tienen un
mensaje asociado.
Clase 6
Ramas
Una rama y su historial de confirmaciones
Dos ramas apuntando al mismo grupo de
confirmaciones
Apuntador HEAD a la rama donde estamos
actualmente
El apuntador HEAD apunta a la rama actual
La rama apuntada por HEAD avanza con cada
confirmación de cambios
HEAD apunta a otra rama cuando hacemos un salto
Los registros de las ramas divergen
Clase 7
Fusiones
git merge otra_rama
git merge Incorpora otra_rama en la rama
actual.
git branch
Si lo lanzamos sin parámetros,
obtenemos una lista de las ramas
presentes en nuestro proyecto
git branch -v Muestra la última confirmación de
cambios en cada rama.
git branch --merged Muestra las ramas que han sido
fusionadas en la rama activa.
git branch
--no-merged Muestra todas las ramas que
contienen trabajos sin fusionar.
git branch -d nombreRama
git branch -d Elimina nombreRama si ya ha sido
fusionada con la rama actual.
git branch -D nombreRama

git branch -D
Elimina nombreRama esté o no
fusionada con la rama actual.

Se fuerza el borrado, se pierden


los cambios.

You might also like