De donde surge Git.

En un principio, BitKeeper era la herramienta que utilizaban los desarrolladores de Linux, un software propietario, pero Linus Torvalds decidió implementar y desarrollar su propio control de versiones. Tan sólo tardó un día para desarrollar las bases para gestionar el propio código de git en Git, (basándose en Bitkeeper y en Monotone) y en tan sólo una semana apareció la primera versión. Su gran eficiencia a la hora de trabajar era ideal para gestionar proyectos grandes coordinando el trabajo entre varias personas sobre archivos compartidos. Las características más relevantes de Git son:

  • Rapidez en la gestión de ramas, y pudiendo mezclar diferentes versiones. Además con posibilidad de ver el historial de desarrollo (y quien ha desarrollado qué partes y cuando).
  • Los repositorios de Subversion y svk se pueden usar directamente con git-svn.
  • Git te ofrece una copia en local del desarrollo entero y los cambios se propagan entre los repositorios locales.
  •  Es software libre.

Comandos básicos y más utilizados

git branch -d 
  • git config: para establecer una configuración específica de usuario.
  • git init: se usa para crear un nuevo repertorio GIT.
  • git add: para agregar archivos al index.
  • git clone: se usa con el propósito de revisar repertorios. Si el repertorio está en un servidor remoto se tiene que usar el siguiente comando:
    git clone name@93.188.156.58:/path/to/repository
  • git commit: es usado para cambiar a la cabecera.
  • git status: muestra la lista de los archivos que se han cambiado junto con los archivos que están por ser añadidos o comprometidos.
  • git push: Este es uno de los comandos más básicos. Un simple push envía los cambios que se han hecho en la rama principal de los repertorios remotos que están asociados con el directorio que está trabajando.
    git push origin master
  • git checkout: se puede usar para crear ramas o cambiar entre ellas.
  • git remote: se usa para conectar a un repositorio remoto.
  • git branch: se usa para listar, crear o borrar ramas (para borrar)
  • git pull: para poder fusionar todos los cambios que se han hecho en el repositorio local trabajando.
  • git merge: se usa para fusionar una rama con otra rama activa.
  • git diff: se usa para hacer una lista de conflictos. Por ejemplo:
    git diff --base 
  • git tag: se usa para marcar commits específicos con nombres más simples. Por ejemplo
    git tag 3.2.0
  • git log: muestra una lista de commits en una rama junto con todos los detalles.
  • git reset: resetear el index y el directorio que está trabajando al último estado comprometido .
  • git rm: se puede usar para remover archivos del index y del directorio que está trabajando.
  • git stash: ayuda a salvar cambios que no están por ser comprometidos inmediatamente.
  • git show: se usa para mostrar información sobre cualquier objeto git.
  • git fetch: permite al usuario buscar todos los objetos de un repositorio remoto que actualmente no reside en el directorio local que está trabajando.
  • git grep: permite al usuario buscar en los árboles de contenido cualquier frase o palabra. Por ejemplo:
    git grep “www.tupaginaweb.com”
  • gitk: invocamos a la interfaz gráfica. Navegando por la red he encontrado una aplicación para principiantes, para que poco a poco se habitúen a conceptos de Git.

Me ha parecido muy interesante, no hay nada mejor para aprender algo que haciendo uso de ello. Para utilizar esta herramienta accede a Learn Git Branching También he encontrado otro sitio muy interesante y que la verdad lo explica todo muy bien detallado (no apto para impacientes) y que recomiendo al 100 %, que es  Git.

GitHub

No puedo terminar este post sin nombrar a GitHub. Es una plataforma colaborativa para alojar proyectos utilizando el sistema de control de versiones Git. Como sabemos con Git, podemos mantener nuestro código a salvo, y tenerlo controlado en todo momento pero con GitHub tienes la posibilidad de tener tu código ubicado en el almacenamiento de GitHub, haciendo que este código sea público (y susceptible de ser usado por otros, o incluso colaborando contigo para la mejora del mismo) o bien utilizando repositorios privados en los que sólo tú puedas hacer uso de ellos. Cualquiera que se cree una cuenta en esta plataforma tendrá su código ubicado en el almacenamiento de GitHub en todo momento. 

GitFlow

Es un flujo de trabajo basado en Git que brinda un mayor control y organización en el proceso de integración continua. Implementarlo tiene las siguientes ventajas.

  • Aumenta la velocidad de entrega de código terminado al equipo de pruebas.
  • Disminuyen los errores humanos en la mezcla de las ramas.
  • Elimina la dependencia de funcionalidades al momento de entregar código para ser puesto en producción.
  • Entre otros…

Deben existir dos ramas principales para que el flujo de trabajo funcione correctamente:

  • master
  • develop

GitFlow creará por defecto los siguiente prefijos para las ramas auxiliares, los cuales ayudan a identificar y tener control en el repositorio:

  • feature/
  • release/
  • hotfix/
  • bugfix/
  • support/

Se recomienda agregar un prefijo a las etiquetas, por ejemplo, la letra «v» sin comillas.