Git
Git se ha convertido en el estándar mundial para el control de versiones; es un sistema de control de versiones distribuido, lo que significa que un clon local del proyecto es un repositorio de control de versiones completo. Estos repositorios locales plenamente funcionales permiten trabajar sin conexión o de forma remota con facilidad. Los desarrolladores confirman su trabajo localmente y, a continuación, sincronizan la copia del repositorio con la del servidor. Este paradigma es distinto del control de versiones centralizado, donde los clientes deben sincronizar el código con un servidor antes de crear nuevas versiones.
La comunidad de usuarios de Git ha creado recursos para entrenar a los desarrolladores y la popularidad de Git facilita recibir ayuda cuando se necesita. Casi todos los entornos de desarrollo tienen compatibilidad con Git y las herramientas de línea de comandos de Git implementadas en todos los sistemas operativos principales.
Aspectos básicos de Git
Cada vez que se guarda el trabajo, Git crea una confirmación. Una confirmación es una instantanéa de todos los archivos en un momento dado. Si un archivo no ha cambiado de una confirmación a la siguiente, Git usa el archivo almacenado anteriormente. Este diseño difiere de otros sistemas que almacenan una versión inicial de un archivo y mantienen un registro de las diferencias a lo largo del tiempo.
Las confirmaciones crean vínculos a otras confirmaciones, formando un gráfico del historial de desarrollo. Es posible revertir el código a una confirmación anterior, inspeccionar cómo cambian los archivos de una cofirmación a la siguiente y revisar información como dónde y cuándo se realizaron los cambios. Las confirmaciones se identifican en Git mediante un hash criptográfico único del contenido de la confirmación. Dado que todo tiene hash, es imposible realizar cambios, perder la información o dañar los archivos sin que Git lo detecte.
Ramas
Cada desarrollador guarda los cambios en su propio repositorio de código local. Como resultado, puede haber diversos cambios diferentes basados en la misma confirmación. Git proporciona herramientas para aislar los cambios y volver a combinarlos posteriormente. Las ramas, que son punteros ligeros para el trabajo en curso, administran esta separación. Una vez finalizado el trabajo creado en una rama, se puede combinar de nuevo en la rama principal (o troncal) del equipo.
Archivos y Confirmaciones
Los archivos de Git se encuentran en uno de los 3 estados:
Modificados
Almacenados
Confirmados
Cuando se modifica un archivo por primera vez, los cambios solo existen en el directorio de trabajo. Todavía no forman parte de una confirmación ni del historial de desarrollo. El desarrollador debe almacenar provisionalmente los archivos modificados que se incluirán en la confirmación. El área de almacenamiento provisional contiene todos los cambios que se incluirán en la siguiente confirmación.
Una vez que el desarrollador esté satisfecho con los archivos almacenados provisionalmente, los archivos se empaquetan como una confirmación con un mensaje que describe lo que ha cambiado. Esta confirmación pasa a formar parte del historial de desarrollo.
El almacenamiento provisional permite a los desarrolladores elegir qué cambios de archivo se guardarán en una confirmación para desglosar los cambios grandes en una serie de confirmaciones más pequeñas. Al reducir el ámbito de las confirmaciones, es más fácil revisar el historial de confirmaciones para buscar cambios de archivo específicos.
Ventajas de Git
Desarrollo Simultáneo: Todos los usuarios tienen su propia copia local de código y pueden trabajar simultáneamente en sus propias ramas. Git funciona sin conexión, ya que casi todas las operaciones son locales.Versiones de lanzamiento más rápidas: Las ramas permiten un desarrollo flexible y simultáneo. La rama principal contiene código estable y de alta calidad desde el que publica. Las ramas de características contienen trabajo en curso y se combinan con la rama principal tras la finalización. Al separar la rama de versión del desarrollo en curso, es más fácil administrar código estable y enviar actualizaciones más rápidamente.Integración Incorporada: Debido a su popularidad, Git se integra en la mayoría de las herramientas y productos. Todos los IDE principales tienen compatibilidad integrada con Git y muchas herramientas admiten la integración y la implementación continuas, las pruebas automatizadas, el seguimiento de los elementos de trabajo, las métricas y la integración de características de informes con Git. Esta integración simplifica el flujo de trabajo diario.Sólido soporte técnico de la comunidad: Git es de código abierto y se ha convertido en el estándar de facto para el control de versiones. No hay escasez de herramientas y recursos disponibles para que los equipos aprovechen. El volumen de soporte técnico de la comunidad para Git en comparación con otros sistemas de control de versiones facilita recibir ayuda cuando se necesita.Git funciona con cualquier equipo: Utilizar Git con una herramienta de administración de código fuente aumenta la productividad de un equipo al fomentar la colaboración, aplicar directivas, automatizar procesos y mejorar la visibilidad y la rastreabilidad del trabajo. El equipo puede decidirse por herramientas individuales para el control de versiones, el seguimiento de los elementos de trabajo y la integración e implementación continuas. O bien, pueden elegir una solución como GitHub o Azure DevOps que admita todas estas tareas en un solo lugar.Solicitudes de incorporación de cambios: Use solicitudes de incorporación de cambios para analizar los cambios de código con el equipo antes de combinarlos con la rama principal. Las discusiones en las solicitudes de incorporación de cambios son valiosas para garantizar la calidad del código y aumentar los conocimientos en todo el equipo. Las plataformas Github y Azure DevOps ofrecen una experiencia de solicitud de incorporación de cambios enriquecida en la que los desarrolladores pueden examinar los cambios de archivos, dejar comentarios, inspeccionar confirmaciones, ver compilaciones y votar para aprobar el código.Directivas de rama: Los equipos pueden configurar GitHub y Azure DevOps para aplicar flujos de trabajo y procesos coherentes en todo el equipo. Pueden configurar directivas de rama para asegurarse de que las solicitudes de incorporación de cambios cumplan los requisitos antes de la finalización. Las directivas de rama protegen las ramas importantes al prevenir las inserciones directas, requerir revisores y garantizar compilaciones limpias.
Instalación y Configuración
Git aún no es una opción predeterminada en los equipos, por lo que debe instalarse y configurarse manualmente. Y, al igual que cualquier otro software, es importante mantenerlo actualizado. Las actualizaciones protegen frente a vulnerabilidades de seguridad, corrige errores y proporcionan acceso a nuevas características.
Instalar en Windows
Descargue e instale Git para Windows. Una vez instalado, Git está disponible desde el símbolo del sistema o PowerShell. Se recomienda seleccionar los valores predeterminados durante la instalación, a menos que haya una buena razón para cambiarlos.
Git para Windows no se actualiza automáticamente. Para actualizar Git en Windows, descargue la nueva versión del instalador, que actualiza Git para Windows en su lugar y conserva toda la configuración.
Instalar en macOS
macOS 10.9 (Mavericks) y versiones posteriores instala Git la primera vez que intenta ejecutarlo desde la terminal. Aunque este método es una manera fácil de obtener git en un sistema, no permite el control sobre la frecuencia con la que se aplican las actualizaciones o las correcciones de seguridad.
En su lugar , se recomienda instalar Git a tarvés de Homebrew y usar las herramientas de Homebrew para mantener Git actualizado. Homebrew es una excelente manera de instalar y administrar herramientas de desarrollo de código abierto en un equipo Mac desde la línea de comandos.
Instale Homebrew y ejecute lo siguiente para instalar la versión más reciente de Git en un equipo Mac:
Para actualizar la instalación de Git, utilice la opción de actualización de Homebrew:
También hay disponible un instalador gráfico para Git en macOS en el sitio oficial de Git.
Instalar en Linux
Utilice el sistema de administración de paquetes nativo de la distribución de Linux para instalar y actualizar Git. Por ejemplo, en Ubuntu:
Configurar Git en Linux
Configure el nombre y la dirección de correo electrónico antes de empezar a trabajar con Git. Git adjunta esta información a los cambios y permite a otros usuarios identificar qué cambios pertenecen a qué autores. Ejecute los siguientes comandos desde la terminal después de instalar Git para configurar esta información:
Visual Studio ofrece una excelente experiencia de Git integrada sin ninguna herramienta adicional. Obtenga más información en este tutorial de Git sobre Visual Studio.
Comandos empleados
Muestra la versión de Git instalada
Muestra las comandos disponibles
Brinda ayuda sobre los comandos (manual)
Muestra la configuración de Git
Inicia un nuevo repositorio y crea la carpeta oculta .git
Lista el estado de los archivos
Agrega todos los archivos pendientes de cambios
Captura estado del código y lo almacena en el repositorio local (Posterior a git add *)
Abre un editor de texto con los cambios del último commit y posibles modificaciones y realizar un commit reemplazando al último
Tags
Crea un tag
Lista tags
Borra un tag en específico
Hace un tag en un commit anterior
Mostrar información del tag
Deshace la captura del estado del código
Commits
Cambiamos a un commit en específico perdiendo todos los cambios posterior a este
Muestra los commit realizados hasta el momento
Lista todos los commits de todas las ramas de forma gráfica tomando como base la rama actual
Cambia a un commit en específico con todos sus cambios
Muestra los cambios de 2 commits
Ramas
Crea una nueva rama
Nos muestra en que rama estamos y lista las demás
Nos movemos de la rama actual a una específica
Crea y nos movemos a la nueva rama
Renombra la rama actual
Elimina una rama
Permite juntar 2 ramas. Trae los cambios de la rama especificada a la rama actual
Permite juntar 2 ramas, pero las mantiene. Genera un commit del merge en la rama actual
Permite traer los commits de otra rama a la rama actual reorganizan los commits
Repositorio Remoto
Para subir nuestro proyecto debemos crear un repositorio remoto. Al crearlo nos mostrará una serie de comandos para subir el proyecto. Te pedirá un usuario y contraseña de tu cuenta de git si aún no lo registras.
Vincular repositorio remoto con repositorio local
Cambiar URL del repositorio remoto
Nos muestra en que repositorio estamos enlazados remotamente
Sube los cambios del repositorio local al remoto y especifica la rama principal
Eliminar una rama remota
Sube todos los tags locales al remoto
Elimina un tag remoto
Descarga los cambios del repositorio remoto y actualiza el local en la rama por defecto
Descarga los cambios del repositorio remoto actualiza el local en una rama específica
Clona un repositorio remoto en la rama por defecto
Clona un repositorio remoto en una rama específica
Última actualización
