Tutorial Básico de Git

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
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:

Entradas relacionadas
Software libre
Tecnología

Software Libre

El Software Libre es toda aplicación o conjunto de programas informáticos que proporcionan el código fuente en que fue desarrollado y este puede ser estudiado, modificado, y utilizado libremente con cualquier fin, inclusive puede ser redistribuido con cambios o mejoras o sin ellas, de manera comercial o no comercial.

Leer Más >>
Seguridad

Clickbaits

Los clickbaits tienen como propósito atraer la mayor cantidad de visitas posible a alguna página web y en muchos casos, exponen riesgos de seguridad al usuario.

Leer Más >>
WordPress Linting Hero Image
Tips

WordPress Linting

El uso de linting nos ayuda a mantener el estándar en nuestro código fuente, forzando al programador o grupo de programadores a seguir ciertas reglas preestablecidas, unificando de esta manera la legibilidad del mismo.

Leer Más >>

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *