Conéctate con TwitterConéctate con Facebook
pasos-git

Primeros pasos en Git: Creación y gestión de repositorios

Git es un sistema de control de versiones descentralizado. Fue diseñado por Linus Torvalds pensando “en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando tienen un gran número de archivos de código fuente.”

Este artículo es el primero de una serie en la que nos concentraremos en conocer el flujo de trabajo básico para llevar a cabo el versionado de nuestros proyectos.

Cómo instalar Git

El primer paso es instalar Git en nuestro sistema. Es un proceso sencillo si tienes alguna distribución Linux u OS X. Además, en cualquier otro sistema basado en Nix funciona excelente.

Después, es importante configurar nuestros datos básicos:

[code]
$ git config –global user.name "Mi nombre"
$ git config –global user.email "mi@correo.com"
[/code]

Lo siguiente que debemos hacer es crear y gestionar un repositorio de forma local. Veremos cómo iniciar nuestros repositorios y registrar cambios en el historial de Git.

Es importante mencionar que Git es una herramienta con una curva de aprendizaje pronunciada. La clave es llevar un orden y siempre registrar nuestros cambios casi que de forma automática. De esta manera, evitaremos complicaciones.

Creando nuestro repositorio

Cualquier carpeta de nuestro sistema puede ser un contenedor o repositorio para Git. Ahí se establecerá la configuración e historial bajo una carpeta nombrada .git que se encuentra oculta.

No es necesario iniciar nuestro proyecto a la par que un repositorio. De hecho, estos se pueden crear aún cuando ya hemos avanzado con nuestro código. Por ejemplo, si tenemos la estructura de un sistema o librería sencilla:

[code]
/proyectos/mi-libreria
/proyectos/mi-libreria/include
/proyectos/mi-libreria/include/sistema.class.php
/proyectos/mi-libreria/include/funciones.php
/proyectos/mi-libreria/index.php
[/code]

Sólo debemos ubicarnos en la carpeta y ejecutar git init para crear el repositorio:

[code]
$ cd /proyectos/mi-libreria
$ git init

Initialized empty Git repository in /proyectos/mi-libreria/.git/
[/code]

Registrar y guardar archivos

Cada repositorio guarda un historial de los cambios realizamos en nuestro proyecto. Al ejecutar git status, podemos verificarlos en el estado actual:

[code]
$ git status

# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>…" to include in what will be committed)
#
# include/
# index.php
nothing added to commit but untracked files present (use "git add" to track)
[/code]

En este ejemplo es evidente que hace falta registrar los archivos contenidos en la raíz de nuestro proyecto. Podemos agregarlos de esta manera:

[code]
$ git add .
$ git status

# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm –cached <file>…" to unstage)
#
# new file: include/funciones.php
# new file: include/sistema.class.php
# new file: index.php
#
[/code]

Usamos git add . porque el punto indica la ruta actual y Git agrega, por defecto, una carpeta como argumento al emplear esta instrucción. También es posible agregar archivos individualmente con sólo especificar la ruta con relación a la raíz del repositorio. Por ejemplo:

[code]
$ git add include/funciones.php
[/code]

Finalmente, debemos confirmar los cambios en el repositorio. Para hacerlo, ejecutamos git commit:

[code]
$ git commit -m "Primer commit; agregue la estructura de archivos"

[master (root-commit) 0034116] Primer commit; agregue la estructura de archivos
3 files changed, 3 insertions(+), 0 deletions(-)
create mode 100644 include/funciones.php
create mode 100644 include/sistema.class.php
create mode 100644 index.php
[/code]

Después, verificamos que todo esté en orden con git status:

[code]
$ git status

# On branch master
nothing to commit (working directory clean)
[/code]

Al trabajar con este tipo de herramientas, lo ideal sería que por cada cambio -tanto en el código como en la estructura de archivos- se haga un registro en el repositorio con una descripción puntual, breve y clara de las modificaciones. Esto para no perder el orden de los cambios en nuestro proyecto.

En los siguientes artículos te enseñaré cómo lograr un flujo de trabajo más flexible con el manejo de ramas como branch, checkout, rebase y merge. Además, también repasaremos diversas técnicas y recomendaciones para un registro de cambios más efectivo con commit, cherry-pick, reset, diff, show y log.

Y ya que dominemos el flujo de trabajo básico de manera local, continuaremos con la obtención, publicación y actualización de repositorios con remote, fetch, pull y push.

Este es sólo un pequeño adelanto de todo lo que verás si te registras al curso de Git y GitHub en Platzi. Aprenderás, desde cero hasta un nivel más avanzado, cómo implementar estas herramientas en tus proyectos, sus conceptos básicos y hasta cómo hacer deploy y automatización.