Git 101
Una introducción a los manejadores de versiones con git.
Ing. Alberto Rodríguez Sánchez
Embajador y Colaborador del proyecto Fedora
Temario
- Introducción a las 4 Fs de Fedora
- Control de versiones.
- Breve historia de git.
- Comandos (muy) basicos.
- Gitlab, github, bitbucket, pagure.
Los valores del Proyecto Fedora
Libertad
Avanzar en el desarrollo de software libre y contenido libre.
Amistad
Construir una gran comunidad
Características
Desarrollar características que beneficien a todas las distribuciones de Linux, no solo Fedora.
Los primeros
En general, marcar el paso de las tecnologías que revolucionaran el mundo de GNU/Linux
Problemas
- Falla de Discos.
- Múltiples copias con distintas versiones.
- Es difícil mantener colaborar en el mismo código.
- Errores.
- Gestión de cambios.
- Trazabilidad
Sistemas de control de versiones
(VCSs)
¿Qué es un control de versiones, y por qué debería importarte?
Un control de versiones es un sistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante.
Local
Son herramientas funcionan guardando conjuntos de parches (es decir, las diferencias entre archivos) en un formato especial en disco, y son capaces de recrear cómo era un archivo en cualquier momento a partir de dichos parches.
Un ejemplo es rcs disponible en MacOS y con interface grafica en Xcode
Centralizado
Los sistemas de Control de Versiones Centralizados fueron desarrollados para solucionar este problema. Estos sistemas, como CVS, Subversion, y Perforce, tienen un único servidor que contiene todos los archivos versionados, y varios clientes que descargan los archivos desde ese lugar central. Este ha sido el estándar para el control de versiones por muchos años.
Distribuido
Los sistemas de Control de Versiones Distribuidos ofrecen soluciones para los problemas que han sido mencionados. Los clientes no solo descargan la última versión de los archivos, sino que se replica completamente el repositorio.
Ejemplos son Git, Hg, Bazaar y Darcs
Breve historia de git
Como muchas de las grandes cosas en esta vida, Git comenzó con un poco de destrucción creativa y una gran polémica.
Linux Kernel
Datos
- Parches (1991-2002)
- bitkeeper (2002-2005)
- git (2005-hoy)
Características deseadas
-
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)
Primeros pasos
- Instalación
- Linea de comandos
- Interfaz grafica
Linux
Windows/Mac
# Ubuntu/Debian
$ sudo apt-get install git-core
# Arch
$sudo pacman -Sy git
# Fedora
$ # Ya esta instalado ;)
https://git-scm.com/downloads
Configuración
$ git config --global user.name "John Doe"
$ git config --global user.email "johndoe@example.com"
$ git config --list
Estructura de git
- repository: Lugar donde tu código vive
- commit: Unidad de cambio en el código.
- branch: Versión / variante del código.
- HEAD: Vista actual del código.
clonar y crear un repositorio.
# clonar un repositorio
$ git clone <url>
# Crear un repositorio
$ cd codigo
$ git init .
# agregar un repositorio remoto un repositorio local
$ git remote add origin remote <repository URL>
$ git remote -v
$ git push origin master
Trabajar con nuestro repositorio
$ git clone <url>
$ git log --graph --all --decorate
# Cambiar de rama si es necesario
$ git checkout <BRANCH>
$ git status
..code..
$ git add <archivos>
$ git commit -am "Mensaje realmente util"
$ git push
# Fetch and merge
$ git pull
# Rebase
$ git pull --rebase
Colaborar
- fork
- pull request
- merge
Únete y haz lo que mas te guste
Taller de Git 101
By Alberto Rodríguez Sánchez
Taller de Git 101
- 707