Tutorial Básico de Git

Facebook
Twitter
LinkedIn

Git es un sistema de control de versiones descentralizado, a diferencia de SVN que almacena el repositorio en un servidor centralizado, Git crea una copia del repositorio cada vez que alguien descarga el repositorio. En SVN usamos el comando checkout para descargar un repositorio, en Git usamos el comando clone

Sistemas de Control Versiones Descentralizados

18333fig0103-tn

Sistemas de Control Versiones Centralizados

18333fig0102-tn

El directorio donde se clona un repositorio es llamado nuestro directorio de trabajo o el working directory, este working directory esta relacionado a un branch del repositorio, por defecto el branch que se crea se llama master. Si lo vemos desde el punto de vista de SVN viene siendo el folder trunk. Dado que Git es un repositorio descentralizado, los branches pueden ser locales (local) o remotos (remote). El servidor del cual se clono el repositorio por primera vez se conoce como el origin (el origen).

18333fig0322-tn

A diferencia de SVN donde cada revisión tiene un número asociado, Git genera un hash basado en ciertos elementos como lo son: el id del archivo, el id del commit, el id del branch, cada id esta representado de forma hexadecimal.

git-commit

Ciclo de Trabajo en Git

A diferencia de SVN, todo el trabajo realizado se mantiene en la copia del repositorio local, no se refleja en el servidor hasta que se haga un push al remote branch. El flujo de trabajo en Git se puede definir de la siguiente manera

  1. Agregando (add) archivos al working directory: Esto le indica a Git que empiece a monitoriar (track) los cambios realizados a este archivo.
  2. Guardando (commit) los cambios en el local branch del repositorio: Esto le indica a Git que guarde el status actual de todos los cambios realizados en el working directory
  3. Subir (push) los cambios al remote branch en el origin: Esto le indica a Git que los cambios están listos para ser publicados y ser accedidos por otros colaboradores.

El área donde se realizan los pasos 1 (add) y 2 (commit) es conocido en Git como el staging area en esta área se puede definir exactamente que archivos y que cambios en el archivo se harán commit, para esto se puede utilizar el comando status.

Git Staging Area

18333fig0106-tn

Ciclo de vida de un archivo en Git

18333fig0201-tn

Flujo de Desarrollo en Git

Git ofrece la características de definir flujos de trabajos, en la mayoria de los casos, el flujo de trabajo utilizado es en base a branches, usualmente existen dos branches principales, el master y el develop; cualquier otro branch creado será con el propósito de trabajar algún bug o funcionalidad especifica, estos branches se conocen como un feature/topic branches

  • Master Branch: Es el branch de producción, este será el branch utilizado para realizar los deployments al servidor de produccón una vez se haya realizado un merge de los cambios con el develop branch.
  • Develop Branch: Es el branch utilizado para realizar todo el desarrollo del proyecto, es el puente que sirve entre los feature/topic branches y el master branch.
  • Feature/Topic Branches: Son los branches utilizados para resolver algún problema especifico o desarrollar nuevas funcionalidades del sitio sin afectar la versión de desarrollo actual. Una vez este aprobado los cambios, se harán un merge con el develop branch.

Flujo de Desarrollo en base a Master, Develop y Feature/Topic Branches

18333fig0319-tn

Resumen de Commandos

  • clone: para descargar el repositorio
  • add: para agregar archivos al branch local y monitoriar los cambios
  • status: para saber cuales son los cambios listos para guardarse en el local branch
  • commit: para guardar los cambios en el branch local
  • push: para subir los cambios al branch remoto
  • pull: para descargar los ultimos cambios del branch remoto y combinarlos en tu branch local de forma inmediata (un merge)
  • fetch: para descargar los cambios pero sin combinarlos con tus cambios locales (no hay merge)

 Enlaces Externos:

Te podría interesar
Tips

RewriteBase variable en base al nombre del dominio

Muchos desarrolladores utilizan diferentes servidores como parte del ciclo de vida del proyecto, en muchas ocasiones la URL puede variar en base a este servidor lo cual presenta un problema para el uso del mod_rewrite de apache. La solución: crear una variable que almacena la ruta por servidor y luego utilizar esta variable en la definición de la regla RewriteRule.

Leer Más >>
Tips

Custom Web Fonts

Con la entrada de HTML5 se han abierto muchas puertas para poder utilizar un Font que no es estándar dentro de nuestra página, esto lo podemos lograr de utilizando la regla CSS3 @font-face, la librería Cufón de Javascript o servicios de Fonts en línea como lo es Google WEB Fonts.

Leer Más >>

Deja una respuesta

Tu dirección de correo electrónico no será publicada.