Sie sind auf Seite 1von 23

INTRODUCCIN A

Conceptos bsicos

Es un sistema mediante el cual se registran los cambios


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

QU ES UN SISTEMA DE CONTROL
DE
VERSIONES?

Sabiendo lo anterior, Git es un sistema de control de versiones


distribuido creado por Linus Torvalds en 2005 como respuesta a
la necesidad de controlar el proyecto del ncleo Linux.
Entre sus caractersticas tenemos:

Instantneas, no diferencias.

Casi cualquier operacin es local.

Git tiene integridad.

Git generalmente solo aade informacin.

QU ES GIT?

Git tiene tres estados principales en los que se pueden encontrar


tus archivos:

Modificado (modified)
Preparado (staged)
Confirmado (commited)

LOS TRES ESTADOS

git init: Inicializa un repositorio.


git clone [url] [ruta]: Clona un repositorio.

FUNDAMENTOS DE GIT [1/6]


OBTENIENDO UN REPOSITORIO GIT

git status: Permite comprobar el estado de los archivos de tu


repositorio.
git add: Inicia el seguimiento de un archivo o conjunto de
archivos, tambin cumple la tarea de preparar archivos.
git commit: Confirma los cambios de tus archivos, en este
punto se toma una instantnea del rea de preparacin.

FUNDAMENTOS DE GIT [2/6]


GUARDANDO CAMBIOS EN EL REPOSITORIO

git log: Permite ver las modificaciones que se han llevado a


cabo sobre un proyecto.

Opciones para filtrado de git log:

-(n): Muestra solo las ltimas n confirmaciones.

--since: Muestra confirmaciones posteriores a la fecha dada.

--until: Muestra confirmaciones hechas antes de la fecha dada.

--author: Muestra las confirmaciones que coincidan con el


autor.

--commiter: Muestra las confirmaciones que coinciden con el


confirmador especfico.

FUNDAMENTOS DE GIT [3/6]


VIENDO HISTRICO DE CONFIRMACIONES

git commit -amend: Permite volver a hacer una confirmacin


reemplazando la confirmacin anterior.

git reset HEAD [archivo]: Permite sacar un archivo del rea de


preparacin.

git checkout -[archivo]: Permite deshacer las modificaciones


de un archivo al punto de la ltima confirmacin de este.

FUNDAMENTOS DE GIT [4/6]


DESHACIENDO COSAS

git remote: Muestra los repositorios remotos que tienes


configurados.

git remote add [nombre] [url]: Permite aadir un nuevo


repositorio a tu lista con un nombre definido.

git fetch [repositorio]: Recupera todos los datos del repositorio.


Despus del fetch, tendrs referencias a todas las ramas del
repositorio remoto.

git push [repositorio] [rama]: Permite enviar tus cambios al


repositorio remoto. (Requiere permiso de escritura)

git remote show [nombre]: Muestra informacin del


repositorio.

git remote rename [anterior] [nuevo]: Renombra el repositorio.

git rm [repositorio]: Elimina la referencia del repositorio.

FUNDAMENTOS DE GIT [5/6]


TRABAJANDO CON REPOSITORIOS REMOTOS

git tag: Permite lista las etiquetas definidas en Git.


git tag a [nombre] m [mensaje]: Crea la etiqueta anotada
con nombre y mensaje definido.
git show [nombre]: Muestra la informacin de la etiqueta
solicitada.
git tag [nombre]: Crea la etiqueta ligera con el nombre
definido.
git tag a [nombre] [suma]: Crea la etiqueta para un commit
identificado con la suma de comprobacin definida.
git push [repositorio] [tagname]: Permite enviar las etiquetas
definidas al servidor.

FUNDAMENTOS DE GIT [6/6]


CREANDO ETIQUETAS

Crear una rama es bsicamente crear un nuevo apuntador, que


en este caso apuntara a la misma confirmacin de master. Para
crear una rama hacemos:

git branch [nombre] (Si aades b saltas a la rama)

RAMIFICACIONES EN GIT
CREANDO RAMAS.

HEAD es un apuntador especial que apunta a la rama local


donde ests trabajando. Para cambiar de rama hacemos lo
siguiente:
git checkout[rama]

RAMIFICACIONES EN GIT
MOVERSE ENTRE RAMAS

Cuando hemos terminado el trabajo en las ramas que creamos


para aadir o corregir ciertas funcionalidades, necesitamos
mezclarlas con la rama de trabajo principal. Aqu se presentarn
distintos casos, pero para hacer el merge seguimos el
procedimiento:

Nos movemos a la rama principal (master).

Hacemos: git merge [rama a fusionar]

RAMIFICACIONES EN GIT
FUSION DE RAMAS (MERGE)

FAST FORWARD
Este tipo de fusin se emplea cuando hay un caso especial en el
que en una rama adquiere cambios no conflictivos con su
antecesor. Al hacer el merge, el apuntador de master ahora
apunta al commit de dicha rama.

RAMIFICACIONES EN GIT

PROCEDIMIENTOS BSICOS PARA FUSIONAR


[1/3]

FUSION DE TRES BANDAS


Este caso difiere del anterior por el hecho de que la confirmacin
en la rama actual no es ancestro directo de la rama que
pretendes fusionar. Git realizar una fusin a tres bandas,
utilizando las dos instantneas apuntadas por el extremo de
cada una de las ramas y por el ancestro comn a ambas dos.

RAMIFICACIONES EN GIT

PROCEDIMIENTOS BSICOS PARA FUSIONAR


[2/3]

FUSIN CON CONFLICTOS


Hay ciertas situaciones donde hay modificaciones dispares en una
misma proporcin de un archivo en las dos ramas que se pretende
fusionar. Para resolver este tipo de conflictos, se ha de elegir
manualmente el contenido de un lado o de otro. Tambin existe la
alternativa git mergetool, una herramienta de visualizacin.

RAMIFICACIONES EN GIT

PROCEDIMIENTOS BSICOS PARA FUSIONAR


[3/3]

git branch: Lista las ramas del repositorio, la rama marcada


con * es la rama actual.

git branch -v: Lista las ltimas confirmaciones de cada rama.

git branch -merged/--no-merged: Filtrar las ramas de


acuerdo a si han sido fusionadas o no.

RAMIFICACIONES EN GIT
GESTIN DE RAMIFICACIONES

RAMAS DE LARGO RECORRIDO (Proyectos de larga


duracin)
Es uno de los flujos de trabajo ms comunes, la idea principal de
es mantener cdigo totalmente estable en la rama master,
mientras que las otras ramas (desarrollo o siguiente) se
utilizan para trabajar y hacer pruebas. Las ramas estables
apuntan hacia posiciones ms antiguas en el registro de
confirmaciones, mientras que las ramas avanzadas apuntan a
posiciones ms recientes.

RAMIFICACIONES EN GIT
FLUJOS DE TRABAJO RAMIFICADOS

RAMAS PUNTUALES (Proyectos de cualquier duracin)


Una rama puntual es aquella de corta duracin que abres para
un tema o una funcionalidad muy concreta. La idea es trabajar
funcionalidades por ramas, sin la necesidad de estar fusionando
continuamente las ramas.

RAMIFICACIONES EN GIT
FLUJOS DE TRABAJO RAMIFICADOS

RAMAS PUNTUALES (Proyectos de cualquier duracin)


Una rama puntual es aquella de corta duracin que abres para
un tema o una funcionalidad muy concreta. La idea es trabajar
funcionalidades por ramas, sin la necesidad de estar fusionando
continuamente las ramas.

RAMIFICACIONES EN GIT
FLUJOS DE TRABAJOS RAMIFICADOS

Las ramas remotas son referencias al estado de


ramas en tus repositorios remotos. Son ramas
locales que no puedes mover; se mueven
automticamente
cuando
estableces
comunicaciones en la red.
Suelen referenciarse como [remoto]/[nombre].

RAMIFICACIONES EN GIT
RAMAS REMOTAS

git push [repositorio] [rama]: Dado que las ramas locales no se


sincronizan con los remotos automticamente debes hacer el
push para compartirla en tu repositorio.

git fetch [repositorio]: Recupera todos los elementos de un


repositorio, incluido referencias no editables a las ramas
remotas.

git checkout -b [local] [repositorio]/[rama]: Crea una rama


local en el punto donde se encuentra la rama remota.

git checkout --track [repositorio]/[rama]: Te permite hacer


seguimiento a la rama remota. Las ramas de seguimiento son
ramas locales con referencia remota.

git push [repositorio] :[rama]: Te permite borrar una rama


remota.

RAMIFICACIONES EN GIT
PUBLICANDO

Scott Chacon, Pro Git. 2015-05-04.

REFERENCIAS

Das könnte Ihnen auch gefallen