Ir al contenido principal

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ízde 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.

Comentarios

Entradas más populares de este blog

Sailfish OS certificado como alternativa a Android en Rusia

Los finlandeses de  Jolla  están de enhorabuena, especialmente si recordamos que no hace mucho estaban casi en la bancarrota, tras embarcarse en una aventura algo arriesgada para la fabricación de tablets. Ahora la vida les sonríe: las autoridades rusas  han certificado  el  sistema operativo Sailfish OS  para su uso por parte del gobierno y corporaciones del país. Se trata de un sistema con base open source ( Linux ), pero con una  capa privativa  presente en algunos de sus componentes como puede ser la interfaz o determinadas aplicaciones. La gran ventaja de Sailfish respecto a otros competidores en el mercado del smartphone –como el ya desaparecido  Firefox OS  o  Ubuntu –, es su  compatibilidad con las aplicaciones de Android. Las intenciones de Rusia es  reducir el uso de sistemas operativos extranjeros  (Android, iOS) en móviles del 95% actual  a la mitad en 2025 . Disminuir la  dependen...

3 tácticas para gestionar el tiempo que te ayudarán a aumentar tu productividad

Uno de los grandes problemas que tenemos y del que no siempre somos conscientes los profesionales de marketing online es que  necesitamos pautas para gestionar nuestro tiempo y ser más eficientes . De nada sirve ocupar buena parte de tu jornada leyendo las últimas novedades y actualizaciones si no te queda tiempo para ponerlas en práctica. Trabajar con información no es fácil Hoy me gustaría explicarte  3 reglas de oro  que te ayudarán a ser mucho más productivo en todo lo que hagas y a  eliminar bloqueos mentales , que muchas veces es el  verdadero problema encubierto de la gestión del tiempo . # 1. Simplifica Simplificar es una cuestión de prioridades . ¿Cuántas horas pasas delante del ordenador atendiendo las tareas menos importantes mientras las importantes las retrasas un día tras otro hasta que dejan de serlo? Por ejemplo, te conectas a Facebook o Twitter en cuanto recibes una notificación, respondes al email que acaba de llegar, buscas conten...

Iproute2 la Sustitución completa de ifconfig

Adios net-tools, Bienvenido iproute2 Un poco de historia El aprender del pasado, nos prepara para el futuro La mayoría de las distribuciones de Linux, y la mayoría de los UNIX, usan todavía algunas de ellas las venerables órdenes arp, ifconfig y route. Aunque funcionan, muestran cierto comportamiento inesperado a partir de Linux 2.2. Por ejemplo, los túneles GRE son parte integral del enrutado hoy día, pero precisan herramientas completamente diferentes. Los núcleos Linux 2.2 y superiores incluyen un subsistema de red completamente rediseñado. Este nuevo código de red proporciona a Linux un rendimiento y características con poca competencia en el panorama general de los SO. En realidad, el nuevo código de enrutado, filtrado y clasificación tiene más posibilidades que el que proporcionan muchos enrutadores y cortafuegos dedicados y productos de control de trafico. Actualmente las principales distribuciones de Linux, han sustituido la instalación predeterminada de estas aplicacio...