Sistema de control de versiones Git

Actualizado el 13 de septiembre, 2016. Por BlueHosting.

Git es un software de control de versiones, el cual se usa para hacer seguimiento de los cambios en un archivo o un grupo de archivos. El control de versiones generalmente se asocia con el código fuente, pero en realidad puede ser usado en cualquier tipo de archivo. Por ejemplo, un documento técnico podría ser dispuesto en un sistema de control de versiones con el fin de mantener un seguimiento de cuáles son los cambios hechos a dicho documento. El control de versiones también puede ser aplicado a los gráficos. Puede hacer procedimientos de rollback a versiones previas para mantener un seguimiento de los cambios hechos en un archivo en particular.

Este tutorial aporta las instrucciones de instalación y conceptos básicos para comenzar a usar Git. Sin embargo, la manera en que desee utilizarlo depende exclusivamente de usted.

Instalar Git

Git puede ser instalado en una variedad de sistemas operativos. Este puede ser descargado y compilado. Sin embargo, la forma más recomendable es usar el instalador disponible en los repositorios de su distribución Linux ya que este es el método de instalación más confiable.

Los pasos descritos a continuación están escritos para un usuario no root. Si usted inició sesión como root obvie el uso del prefijo sudo.

Instalación en Linux

Para sistemas Debian y Ubuntu, el comando es el siguiente:

sudo apt-get install git

Para sistemas CentOS el comando es el que sigue:

sudo yum install git

Para el sistema Fedora:

sudo yum install git-core

Para sistemas Arch Linux utilice el siguiente comando:

sudo pacman -Sy git 

Si utiliza el Sistema Gentoo:

sudo emerge ask --verbose dev-util/git

Instalación en sistema local

Git también puede ser instalado en su máquina local. El procedimiento de instalación tanto para Mac OS X como para Windows se explica a continuación.

Mac OS X

Hay distintas maneras de instalar Git en OS X. Puede lograrlo instalando Homebrew o MacPorts antes de Git o descargando el paquete de instalación de Git. Independientemente del método que elija, asegúrese de comprobar cuál versión de sistema operativo está ejecutando actualmente.

Instalar Git a través de Homebrew
  1. Diríjase al sitio web de Homebrew
  2. Copie y pegue el comando de instalación que encontrará en dicha página (bajo Install Homebrew) y péguelo en una ventana de terminal.
  3. En el siguiente paso ingrese su contraseña y pulse Return.
  4. Recibirá un mensaje de instalación exitosa cuando termine.
  5. Se recomienda que instale Brew Doctor para arreglar cualquier error antes de instalar Git, usando el comando brew doctor. Si aparece algún error, este podrá ser solucionado, y podrá ver un mensaje indicando que fue reparado.
  6. Para actualizar Homebrew, ingrese el siguiente comando:

    brew update
    
  7. Para instalar Git con Homebrew, ejecute el siguiente comando:

    brew install git
    
Instalar Git a través de MacPorts
  1. Navegue al sitio web de MacPorts.
  2. Haga clic en el enlace para su sistema operativo.
  3. Haga clic en el archivo descargado para arrancar el instalador.
  4. Haga clic en Continue para comenzar con la instalación.
  5. Haga clic en Agree para aceptar el acuerdo sobre la licencia.
  6. Para dejar la instalación predeterminada haga clic en el botón Install o haga clic en el botón Change Install Location para cambiar la ubicación predeterminada.
  7. Ingrese su contraseña cuando se le solicite y haga clic en el botón Install Software.
  8. Después de que termine la instalación, haga clic en el botón Close para salir del instalador.
  9. Abra una ventana del terminal.
  10. Para instalar Git use el siguiente comando:
    sudo port install git +svn +doc +bash_completion +gitweb
    
Instalar Git a través del paquete de instalación
  1. Navegue al sitio web de Git y descargue el instalador más actual para su sistema operativo.
  2. Haga clic en el archivo descargado para comenzar la instalación.
  3. Haga clic en el botón Continue para comenzar con la instalación.
  4. Seleccione Install for all users of this computer y haga clic en Continue.
  5. Haga clic en Install para continuar instalando en la ubicación por defecto. Si quiere cambiar la ubicación haga clic en Change Install Location.
  6. Ingrese su nombre de usuario y contraseña y haga clic en Install Software para continuar.
  7. Haga clic en Close para cerrar el instalador.

Windows

Para instalar Git en Windows necesitará descargar el instalador desde el sitio web de Git:

  1. En el sitio web de Git seleccione Windows: la versión más reciente de git comenzará a descargarse automáticamente.
    Anexo 1 Descargar git
  2. Abra el paquete instalado y seleccione Ejecutar:
    Anexo 2 Ejecutar instalador Windows
  3. Haga clic en Next para continuar:
    Anexo 3 Instalar Git Windows
  4. Si desea aceptar la ubicación de instalación predeterminada puede hacer clic en Next. Si necesita cambiar la carpeta de instalación haga clic en el botón Browse y seleccione una nueva ubicación:
    Anexo 4 Ubicación de Instalación
  5. Puede continuar con la configuración de componentes predeterminados haciendo clic en Next. Si usted es un usuario avanzado y desea cambiar estos datos puede hacerlo y luego pulsar Next.
    Anexo 5 Componentes Git Windows
  6. Acepte la carpeta predeterminada para el Menú de Inicio haciendo clic en Next o utilice Browse para cambiarla:
    Anexo 6 Ubicación carpeta menú de inicio
  7. Puede aceptar usar Git desde la línea de comandos de Windows y hacer clic en Next. También puede seleccionar usar solo el bash de git, o el uso de git con herramientas de Unix adicionales si lo considera necesario y si está seguro de las implicaciones:
    Anexo 7 línea de comandos Git Windows
  8. Puede mantener la conversión de salto de línea predeterminada y hacer clic en Next o utilizar alguna de las otras opciones si tiene la certeza de hacerlo.
    Anexo 8 salto de línea configuración Windows
  9. En la siguiente ventana puede hacer clic en Next para instalar el emulador MinTTY para el bash de git (opción predeterminada) o seleccionar la otra opción para usar el símbolo de sistema de Windows.
    Anexo 9 Emulador Windows
  10. En este paso también se recomienda hacer clic en Install para seguir con las opciones predeterminadas:
    Anexo 10 Características adicionales Windows
  11. ¡Felicidades! Una vez culminado el proceso tendrá instalado Git en su sistema Windows. Para salir del instalador haga clic en Finish.
    Nota:
    Se recomienda ampliamente que mantenga las opciones predeterminadas, ya que —por ejemplo— cambiar las opciones de salto de línea podría implicar problemas.
  12. Una vez instalado, abra la interfaz de Git: Git GUI. Puede seleccionar entre las opciones: Create new repository, Clone existing repository, Clone existing repository y Open Existing Repository. En este ejemplo utilizaremos Create new repository.
    Anexo 11 Nuevo repositorio Git
  13. Ingrese el nombre del directorio o haga clic en Browse para navegar a otro directorio. Anexo 12 Browse
  14. En este punto, ya ha creado un nuevo repositorio en blanco.

Configurar Git

Después de completar la instalación, necesitará configurar esta herramienta para el primer uso. Hay una herramienta incorporada llamada git config que obtiene y establece variables de configuración con respecto a cómo funciona Git. Estas variables de configuración se encuentran en tres sitios distintos dentro de un sistema basado en Linux:

  • Archivo /etc/gitconfig: almacena la información para todos los usuarios del sistema y sus respectivos directorios.
  • Archivo ~/.gitconfig: pertenece a su usuario.
  • Archivo .git/config: es el archivo de configuración de su repositorio de ejecución actual.

Para un sistema Windows, el archivo .gitconfig está ubicado en el directorio $HOME del perfil de cada usuario. La ruta completa es de la forma: C:\Document and Settings$USUARIO o C:\Users$USUARIO.

Después de instalar Git debe asegurarse de que su nombre de usuario y dirección de correo electrónico están configurados correctamente. Para verificarlo, utilice el comando:

git config --list

Si su nombre y correo electrónico no están enumerados en la salida, los puede establecer manualmente. Utilice los siguientes comandos para configurar su nombre, remplazando nombre con sus datos reales:

git config --global user.name nombre

Use el siguiente comando para configurar su dirección de correo electrónico, remplazando usuario@dominio.com por los datos reales:

git config --global user.email usuario@dominio.com

Establezca su editor de texto predeterminado con este comando, remplazando mi_editor por su editor favorito:

git config --global core.editor mi_editor

La salida del comando git config --list ahora debe mostrar la información que usted ingresó. Una salida de muestra a continuación:

git config --list
user.name=nombre
user.email=usuario@dominio.com
core.editor=mi_editor

Trabajar con su repositorio

Hay dos formas de obtener un repositorio Git, ya sea importándolo o copiándolo. Si usted tiene un proyecto existente y quiere comenzar a usar Git para hacer seguimiento de los cambios, deberá ejecutar el siguiente comando desde el directorio existente de su proyecto:

git init

Esto creará un nuevo subdirectorio llamado .git. Para comenzar a hacer seguimiento de los cambios hechos en este proyecto, primero añada los archivos a los cuales quiere hacer seguimiento con el siguiente comando (recuerde remplazar nombredelarchivo con el nombre real de su archivo y .txt con la extensión correspondiente):

git add nombredelarchivo.txt

Después de agregar los archivos a los cuales debe hacerle seguimiento, use el comando:

git commit

Este comando sirve para encomendar los cambios antes de enviarlos; debe agregar un mensaje que puede añadir usando su editor de texto favorito y luego guardar y salir para finalizar la escritura de su commit. Una opción más práctica es usar el comando commit -m "mensaje de su commit" y presionar Enter, sustituyendo el texto entre comillas por un mensaje adecuado.

Para copiar un repositorio de Git que ya existe use el comando:

git clone

Recuerde que cada archivo será copiado cuando el comando git clone sea usado. Cuando use un URL, utilice el siguiente comando, remplazando url con el URL real del cual quiere clonar el contenido (los sitios más populares en los cuales puede copiar repositorios son GitHub y BitBucket:

git clone url

Para verificar el estatus de los archivos en su repositorio utilice el siguiente comando (este se usa frecuentemente para mantener actualizada la información y saber qué otros comandos son los más adecuados para utilizar según el estatus):

git status

Este último comando también mostrará el estatus de los submódulos. Cuando se ejecuta este comando le dirá en qué rama está, y si algún archivo al cual le está haciendo seguimiento ha sufrido alguna modificación.

Preparar un repositorio local vacío

Un nuevo repositorio creado solo contiene la carpeta .git. Para este ejemplo, usaremos un repositorio llamado practica. Mantenga la convención de nombres en un formato simple, por ejemplo: minúsculas, nombre cortos, etc. Para crear un nuevo repositorio utilice el comando:

git init practica.git 

Si ya tiene un repositorio en su máquina local y quiere enviarlo a un nuevo servidor Git, remplace 123.45.67.8 y utilice el comando:

git remote set-url origin git@123.45.67.8:practica.git

Ahora será capaz de enviar y recibir archivos desde su PC local a su servidor BlueHosting.

Comandos básicos de archivo

Los comandos más básicos que necesitará saber para comenzar a usar Git se muestran en la lista que sigue:

Comando Descripción Ejemplo
git add añade un archivo a un repositorio git add nombredelarchivo.txt
git rm elimina un archivo de un repositorio git rm nombredelarchivo.txt
git mv mueve o renombra un archivo, directorio o enlace simbólico al cual se le está haciendo seguimiento git mv archivo_origen archivo_destino
git branch enumera todas las ramas locales y remotas git branch nombredelarama
git commit encomienda todos los objetos montados git commit -m "actualizaciones"
git pull descarga todos los cambios desde el repositorio remoto y los combina en un archivo de un repositorio específico git pull repo refspec
git push publica los cambios al repositorio remoto git push repo
git log crea un registro de eventos o log de todos los commits, incluyendo: persona, commit, fecha, hora y mensaje No Aplica
gitk muestra un historial visual de los commits en una herramienta gráfica No Aplica
git commit --amend remplaza el último commit en la rama actual con un nuevo commit, reescribiendo el historial No Aplica

Nota:
Cuando utilice el comando git pull, refspec se utiliza para configurar cuál rama(s) remota(s) debería utilizarse, y cómo la rama o ramas locales deberían ser nombradas. La sintaxis para refspec es:

git pull nombre rama-origen:rama-destino

Recuerde remplazar nombre, rama-origen y rama-destino con sus valores respectivos.

Ramas

Las ramas están hechas de cambios de código individuales. Por ejemplo, por defecto la rama principal se llama "master". La idea principal aquí es que las ramas son creadas para cada característica, implementación o reparación de bug. Así que para usar un ejemplo simple, la primera rama o master branch es el tronco de un árbol y cada rama adicional es una nueva iteración. En este ejemplo, podría haber ramas divididas por el nombre de una nueva característica o por reparación de bugs. Git también es usado para seguir los cambios en un documento, así como para el código.

Las opciones básicas usadas con el comando git branch se enumeran a continuación:

Opción Descripción
-r enumera todas las ramas remotas
-a muestra tanto las ramas remotas como las locales
-m renombra una rama antigua
-d elimina una rama
-r -d elimina una rama remota

Trabajar con repositorios remotos

Los repositorios remotos están alojados en una red u otra ubicación en el Internet. Puede tener varios repositorios remotos. Esta sección provee algunos conceptos básicos para trabajar con repositorios remotos.

Para ver cuáles servidores remotos tiene configurados, utilice:

git remote

Esto mostrará los nombres cortos de sus repositorios remotos. Si su repositorio fue clonado, verá un repositorio llamado origin. El nombre por defecto origin viene desde el repositorio clonado. Para ver más información sobre los repositorios remotos, use el comando:

git remote -v

A continuación algunos comandos básicos para trabajar con los repositorios remotos:

Comando Descripción
git remote add [nombre-remoto] [url] añade un nuevo repositorio remoto
git fetch [repositorio [refspec]] reúne todos los datos de un proyecto remoto que usted aún no tiene
git pull obtiene y combina una rama remota con su rama actual
git push [nombre-remoto] [nombre-rama] mueve sus datos desde su rama hacia su servidor
git remote show [nombre-remoto] muestra información sobre el repo remoto que ha especificado
git remote rename [nombre-antiguo] [nombre-nuevo] cambia el nombre de un repo remoto
git remote rm [nombre] elimina el repo remoto que especifique

Instalar Gitolite

  1. Gitolite funciona por encima de Git, y permite el acceso a usuarios remotos sin necesidad de tener acceso al shell. Instale Gitolite con el siguiente comando:

    sudo apt-get install gitolite
    
  2. Un usuario Linux debe ser creado para que Gitolite puede gestionar su configuración. Este usuario Gitolite trabaja a través de Git así que no es necesario establecer una contraseña. El comando para crearlo a continuación:

    sudo adduser --system --group --disabled-password git
    

Crear claves SSH

  1. Si todavía no ha creado las claves SSH, deberá hacerlo ahora. Estas claves deben ser creadas en su máquina local. En una ventana de terminal ingrese el comando:

    ssh-keygen -t rsa
    
  2. Acepte las opciones predeterminadas y no ingrese contraseña. La clave pública deberá ser copiada en su servidor Git. Remplace usuario, 123.45.67.8, ubicación y nombre-clave por los valores reales al usar el siguiente comando:

    scp ~/.ssh/id_rsa.pub usuario@123.45.67.8:/ubicación nombre-clave
    

    La ubicación es la ruta en la cual usted guardó su clave. Por ejemplo:

    scp ~/.ssh/id_rsa.pub git@123.45.67.8:/tmp/git.pub
    

    La clave privada permanece en su sistema local y no debe ser copiada en ningún otro lugar.

Configurar Gitolite

  1. Inicie sesión en su servidor Git con su cuenta de usuario normal. Remplace ubicación-clave y ejecute el siguiente comando:

    gl-setup key-location
    
  2. Dependiendo de su distribución puede que vea una advertencia sobre el archivo gitolite.rc file, para continuar pulse Enter.

  3. Se le pedirá que ingrese un número para seleccionar un editor de texto. Por ejemplo: 2 que se corresponde con nano.
  4. Ahora el archivo gitolite.rc se abrirá en su editor de texto seleccionado. Debería utilizar la configuración predeterminada, así que salga del archivo para continuar.

Añadir usuarios

Requisitos previos

Antes de que los usuarios sean añadidos a cualquiera de sus proyectos, deberá clonar la información de Gitolite desde su servidor hasta su máquina local. Remplace tanto ejemplo-usuario como 123.45.67.8 por los valores reales y ejecute este comando en su servidor Git:

git clone ejemplo-usuario@123.45.67.8:gitolite-admin

Esto creará un nuevo directorio llamado gitolite-admin. Navegue al nuevo directorio creado; si usted ejecuta el comando ls verá dos archivos: conf y keydir. keydir es el directorio donde están almacenadas las claves del usuario.

Cómo añadir usuarios

Para añadir nuevos usuarios, necesitará su nombre, correo electrónico y clave pública. Para este ejemplo se usa el nombre usuario-ejemplo. Remplace cada aparición de usuario-ejemplo con el nombre de usuario real. El procedimiento es el siguiente:

  1. Copie la clave pública del usuario:

    cp /ruta/usuario-ejemplo/public/key.pub ~/gitolite-admin/keydir/usuario-ejemplo.pub
    
  2. Configure el nombre del usuario:

    git config --global user.name usuario-ejemplo
    
  3. Configure la dirección de correo electrónico del usuario:

    git config --global user.email usuario-ejemplo@email.com
    
  4. Configure el editor de texto:

    git config --global core-editor nombre-editor
    
  5. Ahora añada la clave pública del usuario:

    git add keydir/usuario-ejemplo.pub
    
  6. Encomiende los cambios:

    git commit -a -m "Se añade nuevo usuario nombre-editor"
    
  7. Finalmente, envíe los cambios al servidor:

    git push
    

Recursos adicionales

Este tutorial provee algunos conceptos básicos para comenzar a trabajar sus proyectos con Git. Estos conceptos son un buen punto para comenzar, pero considere que este es un tema bastante extenso. Para complementar la información aquí presentada puede consultar los siguientes recursos. Aunque este material es provisto esperando que sea útil, tome en cuenta que no podemos certificar su actualidad o precisión.

¿QUÉ DESEAS SABER?

Intentaremos leer tu mente...