Git

> Temas > Git
Editar

Git es un sistema de control de versiones, un software que sirve básicamente para gestionar las versiones por las que va pasando el código de los proyectos.

Git es el más popular de los sistemas de control de versiones en la actualidad y una de las herramientas más indispensables para el desarrollo de proyectos.

Aunque un sistema de control de versiones sirva justamente para controlar los estados por los que ha pasado un código, lo cierto es que la herramienta git facilita mucho el desarrollo de los proyectos en equipo, así como otras operaciones relacionadas con el flujo de trabajo de los desarrolladores.

Más información:

Por qué usar Git

Git es la primera pieza de cualquier set de herramientas para el desarrollo moderno. Forma parte del día a día de los desarrolladores profesionales, de los equipos de desarrollo y de los profesionales devOps.

Controlar las versiones del código

Obviamente nos sirve para el control de versiones de los proyectos y por ello permite saber todos los estados por los que han pasado cada uno de los archivos de código de un proyecto. Permite saber cuándo se modificó un archivo y qué cambios se realizaron, a lo largo de toda la existencia de ese archivo.

Trabajo en equipo

Git es la herramienta fundamental para trabajo en equipo, ya que permite que cada desarrollador trabaje con su propia copia local del proyecto y, cuando envíe cambios al repositorio global, se asegure que su código no machaca modificaciones introducidas por otros desarrolladores.

Ademas gracias a Git cualquier desarrollador puede sincronizar el código del proyecto local con los cambios introducidos por otros desarrolladores, lo que facilita mucho el día a día del trabajo de todos los desarrolladores y la gestión de proyectos.

Revisar el código del proyecto en equipo

Otra de las ventajas de Git para equipos de trabajo es que podemos revisar cualquier actualización del código del proyecto entre varias personas. Un desarrollador envía un pull request y otro u otros desarrolladores pueden verificar que los cambios tienen buena pinta, antes de incorporarlos al proyecto.

Revisar la calidad del código y pasar las pruebas

Con Git podemos automatizar diversos procesos de comprobación de la calidad del código, como los que nos permiten los linters o las pruebas. Estas comprobaciones se pueden realizar con cualquier intento de enviar código al repositorio. Si no pasa la revisión del Linter o las pruebas, simplemente no se permitirá actualizar el código del proyecto.

Estos sistemas facilitan aportar un estándar de codificación que tendrán que seguir todos los profesionales del proyecto. Si se intenta enviar cambios al proyecto y el formato o las buenas prácticas no se están siguiendo correctamente, Git no permitirá la actualización del código. Por supuesto, si todas las pruebas unitarias no pasan correctamente, tampoco se podrá actualizar el proyecto.

Despliegue de aplicaciones web

Con Git puedes subir un sitio web al servidor en cuestión de instantes, sin usar el engorroso FTP. Además, cuando se actualiza el código del proyecto puedes usar Git para subir únicamente aquellos archivos que se han modificado, con un sencillo comando de consola.

Aunque no usemos todo el potencial de las operaciones con Git, solo si conseguimos sustituir FTP, estaremos ganando mucha facilidad de organización de proyectos medianos y grandes.

Integración continua y despliegue continuo

Git además de todo permite organizar flujos de trabajo para la automatización de tareas repetitivas, como desplegar el proyecto en entornos de pruebas, desplegar en preproducción o producción.

Estos flujos de trabajo pueden ser tan complejos como se requiera según el proyecto. Todo empezará eventos realizados por el propio Git, cuando se envía por ejemplo código nuevo a una rama determinada. Entonces se podrán realizar todo tipo de acciones, como correr las pruebas, levantar servidores para pruebas de integración, enviar los cambios a servidores, ya sea para producción o preproducción, etc.

Como se puede ver, Git sirve mucho más que solamente controlar las versiones de un software y resulta una herramienta fundamental para todos los procesos de automatización que se pueden realizar en todo tipo de proyectos de software.

Editar

Instalar Git

La instalación de Git se realiza por medio de un instalador en Windows y Mac. En el caso de Linux, la mayoría de distribuciones ya tienen Git instalado de manera predeterminada.

El instalador se descarga desde la web oficial de Git: https://git-scm.com/

No hay más que seguir el asistente y tendremos ya disponible el comando "git" en nuestro terminal.

Nota sobre el terminal: Los usuarios de Windows durante la instalación de Git tienen la opción de instalar Git Bash, que es un programa de terminal de línea de comandos muy recomendable. Los usuarios de Linux y Mac pueden usar los terminales que vienen instalados en sus sistemas, ya que son suficientemente buenos.

Instalación en Mac

En el caso de la instalación en Mac existen otras alternativas que merece la pena comentar.

1.- Con xcode command line tools Esto no es el xcode completo, solo algunos comandos que son útiles para desarrolladores. Desde un terminal escribes.

xcode-select --install

2.- Instalar Git con Homebrew Esto es un instalador de paquetes para MacOS muy útil, más tarde o temprano lo necesitarás para instalar muchas cosas. Una vez instalado Homebrew lanzas el comando

brew install git

3.- Con el instalador, tal como comentamos antes, que descargas de git-scm.

Editar

Qué es un repositorio Git

En Git un repositorio es un proyecto de software controlado por este sistema de control de versiones. Físicamente no es más que una carpeta del sistema de archivos con código fuente de una aplicación. Esa carpeta se mantiene bajo el seguimiento de Git, de modo que, si se realizan cambios en sus archivos, se mantienen controlados por el sistema.

Todo repositorio tiene dentro una carpeta oculta llamada .git que es donde Git mantiene sus archivos para realizar su propia tarea de control del software. Si por cualquier motivo se borra esa carpeta, dejaría de ser un repositorio y se perdería todo el control que Git mantiene sobre ella.

Para crear un repositorio Git desde cero, debemos partir de una carpeta vacía. Estando situados en ella con el terminal de línea de comandos, se tiene que lanzar el comando:

git init

Eso hará que se cree dentro la subcarpeta .git y que se convierta por tanto en un repositorio Git, pasando a estar controlada por el sistema de control de versiones.

Editar

Sistema de control de versiones con repositorios distribuidos

Git tiene la característica de ser un sistema de control de versiones con repositorios distribuidos. Esto quiere decir que cada uno de los integrantes de un proyecto tiene una copia exacta del repositorio y no solamente una copia de los archivos con los que haya trabajado.

En otras palabras, cuando varios desarrolladores trabajan en un proyecto gestionado por Git, cada uno de ellos tiene en su ordenador un clon de todo el proyecto. Una copia de cada uno de los archivos que forman parte del proyecto.

Esta situación es muy útil, porque cada desarrollador puede trabajar de manera autónoma, al contar con una copia completa de todo el software que se está desarrollando, sin depender de estar situado en la oficina o de una conexión a Internet. Otros tipos de sistemas de control de versiones que son centralizados no permiten esa posibilidad de trabajo autónomo, ya que el desarrollador requiere estar conectado al repositorio central para poder obtener archivos del proyecto.

Editar

Operativa con repositorios remotos de Git

En el flujo de desarrollo con Git generalmente se usan repositorios remotos. Esos repositorios remotos también mantienen una copia completa de todo el proyecto y residen en un servidor externo a cualquier máquina de cualquier desarrollador. El servidor donde se aloja el repositorio remoto podría estar en la red local de la oficina del cliente, pero habitualmente se encuentra en una máquina externa, en un servidor de Internet.

La función principal del repositorio remoto es la de servir de apoyo a todos los desarrolladores, de manera que cada uno pueda sincronizar sus cambios realizados en el proyecto contra el servidor remoto y también sincronizar cambios para adquirir todas las nuevas versiones del código publicadas por otros desarrolladores del equipo.

La operativa básica de trabajo con el repositorio remoto consiste en estas operaciones esenciales de Git:

  • Cuando un desarrollador entra en el equipo crea su copia del repositorio en local, a partir del repositorio remoto. Esta operación se conoce como "clonado de repositorio" y es una operativa muy frecuente y básica, que se realiza con el comando "git clone".
  • Cuando un desarrollador hace cambios en un proyecto y decide compartirlos con el grupo, envía esos cambios al repositorio remoto, en una operación que se conoce como "push".
  • Cuando un integrante del equipo desea obtener los cambios realizados en el código del proyecto (realizados por otras personas), para integrarlos en su clon local, se los baja del repositorio remoto, en una operación que se conoce como "pull".

Editar

Clonado de un repositorio Git

Cuando iniciamos un proyecto nosotros mismos tenemos que comenzar por inicializar el repositorio con "Git init", sin embargo, cuando queremos trabajar sobre un proyecto que ya ha sido iniciado por otras personas, o por nosotros mismos pero lo queremos obtener desde otro ordenador o servidor, la operación que tendremos que realizar es el clonado.

Por medio del clonado se accede a un repositorio remoto y se obtiene una copia del mismo, que se instala en una carpeta de nuestro ordenador. Una vez clonado podemos comenzar a trabajar con el repositorio realizando modificaciones en su código y confirmaciones (commits) en local.

El comando para hacer el clonado es "clone", seguido de la URL del repositorio que se desea clonar:

git clone https://github.com/usuario/nombre_repo.git

La URL específica del repositorio la encontrarás en la página del hosting remoto que estés usando, como GitHub o similares.

Ten en cuenta que para clonar repositorios y para otras operativas con GitHub es posible que tengas que autenticarte. Ahora la autenticación en GitHub se realiza mediante un Personal Access Token.

Puedes encontrar más detalles sobre esta operativa en el artículo Clonar un repositorio.

Editar

Autenticarse en GitHub con Personal Access Token

Es importante que conozcas cómo te debes autenticar actualmente, para usar cualquiera de los servicios de GitHub, cuando los usas desde el terminal de línea de comandos o programas de Git con interfaz gráfica.

En este artículo te explicamos cómo realizar la autorización en GitHub con Personal Access Token, ya que el mecanismo anterior basado en tu usuario y contraseña ha quedado obsoleto.

Editar

¿Quieres añadir algo sobre Git?

Crea artículos, recursos o comparte información sobre Git

Crear un bloque

Git

Manuales

Manual de Git
Esta es una compilación de artículos y vídeos destintados a aprender Git, el sistema de control de versiones más utilizado...

Preguntas y respuestas

Se han recibido 7 faqs en Git

Hacer una pregunta