git

  • Este artículo explica la diferencia entre un repositorio creado con git init y uno creado con git init --bare.

  • Hoy liberé un nuevo script Bash, llamado "checkmyfarm", para dar soporte a mi sistema de actualización de servidores en paralelo. Este script tiene el propósito de enviar un único mail incluyendo el resumen de actualizaciones disponibles en todos los servidores de la granja, y reemplaza al viejo verificar_actualizaciones.sh (el cual corría individualmente en cada servidor). De esta forma, en lugar de recibir un mail por cada servidor, recibo un único mail con el resumen de actualizaciones disponibles en todos los servidores de mi granja.

  • ¿Cansado de tener que tipear el usuario y contraseña cada vez que ejecutamos un push hacia GitHub? Este artículo explica cómo configurar la autenticación con clave pública por SSH para no tener que tipear nuestro usuario y clave nunca más.

  • Supongamos que hemos montado nuestro propio servidor git donde hospedar nuestros repositorios git bare y deseamos duplicar o mover uno de ellos. Este artículo explica cómo hacerlo utilizando la opción --mirror.

  • Este artículo explica paso a paso (17 capturas de pantalla) cómo instalar y configurar el cliente de Git para Windows, hasta clonar un repositorio desde Mintty (Git Bash).

  • Las ramas (branches) son las diversas líneas de desarrollo que tiene un proyecto. Para trabajar con ramas en git es necesario recurrir al subcomando branch.

  • Supongamos que hemos creado un fork de un proyecto en GitHub y deseamos mantenerlo actualizado con los últimos cambios (commits) que va realizando su creador, autor o equipo de desarrollo original (llamado comúnmente upstream). En este breve artículo voy a explicar cómo hacerlo utilizando git desde línea de comandos en GNU/Linux.

  • En este artículo voy a explicar los pasos necesarios para montar un servidor git donde alojar un repositorio remoto con acceso SSH, en Debian.

  • En este breve artículo explico cómo visualizar desde línea de comandos los cambios introducidos por un commit en git.

  • Anteriormente demostré cómo configurar la autenticación SSH con clave pública en GitHub. Veamos como hacerlo ahora en una instancia local de GitLab.

  • Si trabajan como desarrolladores y están involucrados en diferentes proyectos, es probable que tengan varias copias locales de repositorios Git. Y llegado un punto también es probable que pierdan la cuenta de los mismos, o no recuerden la ubicación o ruta de alguno de ellos. Por ello, en este breve artículo comparto un comando rápido para buscar todos los repositorios Git en nuestra máquina.

  • Este artículo explica cómo mantener una rama sincronizada con "master" en un repositorio git.

  • Tal como mencioné en el artículo ¿Qué es un repositorio git bare?, a fin de poder subir cambios (git push) hacia un repositorio git, es necesario que el remoto sea un repositorio bare (preferentemente en un servidor centralizado). Sin embargo en este artículo voy a demostrar que también es posible hacer push sobre una copia de trabajo (repositorio non-bare).

  • GitLab es una herramienta de ciclo de vida de DevOps completa la cual provee un gestor de repositorios Git que incluye Wiki, seguimiento de tickets y características de CI (continuous integration). Se trata de una solución open-source utilizada por grandes compañías alrededor del mundo, aunque sigue un modelo "open-core" en el cual la funcionalidad central es liberada bajo licencia MIT, mientras que ciertas características adicionales se liberan bajo licencias propietarias. El código de GitLab fue desarrollado originalmente en lenguaje Ruby, con algunas de sus partes reescritas en Go.

    Este artículo demuestra cómo instalar GitLab desde los fuentes, a pesar de que la documentación oficial aclara inmediatamente que se trata de un proceso extenuante y propenso a errores, con lo cual recomiendan fuertemente la instalación desde paquete. Sin embargo, encarar una instalación manual puede ser de gran utilidad para comprender el funcionamiento completo de GitLab, junto con todas las tecnologías que lo componen y sus interdependencias.

  • Previamente expliqué cómo instalar Ansible desde los fuentes en FreeBSD, en esta oportunidad me gustaría compartir los pasos necesarios para hacerlo en un sistema OpenBSD 6.0.

  • Luego de haber demostrado cómo instalar Git en Windows, llega el momento de demostrar la instalación, configuración y uso de una herramienta más amigable para usuarios de alto nivel del mundo Windows, que no están acostumbrados al uso de la terminal.

    TortoiseGit es un cliente para Git open source. Se encarga de gestionar archivos almacenados en un repositorio local a lo largo del tiempo. Un repositorio es similar a un servidor de archivos, a diferencia que registra todos los cambios hechos sobre todos los archivos y directorios. Esto permite recuperar versiones anteriores de uno o varios archivos, examinar el historial de cambios, saber quién modificó qué archivo, cuando y cómo. Por esta razón Git, como cualquier sistema de control de versiones, es considerado una especie de máquina del tiempo.

    Git es un sistema de control de versiones distribuido open source diseñado para gestionar desde pequeños hasta grandes proyectos de forma rápida y eficiente. Puede ser utilizado para gestionar cualquier colección de archivos, incluyendo archivos de código fuente. Cada clon de Git es un repositorio completamente funcional que incluye el historial de cambios completo y seguimiento de revisiones, sin depender de acceso a la red o un servidor centralizado.

  • Tal vez han notado que en los accesos a redes sociales he agregado un pequeño ícono. Se trata de un link a mi perfil en GitHub donde he creado un repositorio llamado "scripts" para compartir algunos (espero que con tiempo lleguen a ser todos) mis scripts (bash, sh, tcsh) de uso diario para tareas de administración de sistemas y seguridad de la información.

    linuxitux/scripts

    Para descargar una copia del repositorio, simplemente ejecutar:

    git clone https://github.com/linuxitux/scripts.git
    

    La mayoría de los scripts en el repositorio han sido publicados anteriormente en este blog. La idea de juntarlos en un único repositorio git fue para mantenerlos actualizados (y además para verme forzado a aprender y utilizar git en una base diaria).

    Se aceptan contribuciones, forks, etc.

  • Acabo de instalar una instancia de GitLab en un servidor propio dentro de mi organización, ¿ahora qué hago? Este simple artículo demuestra los pasos simples para verificar una instalación de GitLab, desde la creación de una cuenta de usuario, hasta la creación de un proyecto y clonado de un repositorio.

  • Los sistemas de control de versiones registran los cambios sobre un archivo o conjunto de archivos a lo largo del tiempo, para posibilitar recuperar una versión específica más tarde (por lo cual muchas personas ven a los sistemas de control de versiones como "máquinas del tiempo"). Comúnmente se utilizan para controlar las versiones de archivos de código fuente, aunque sirven para cualquier tipo de archivo en una computadora. Por ejemplo, un diseñador gráfico podría utilizar un sistema de control de versiones para guardar las diferentes versiones de una imagen. De esta forma podría revertir la misma a un estado previo, revertir el proyecto completo a un estado previo, comparar los cambios a los largo del tiempo, determinar quién modificó que archivo por última vez, etc.

    Un sistema de control de versiones bien implementado es una necesidad para el éxito de cualquier proyecto, ya sea pequeño o grande.

    Este artículo es indispensable para aquellos desarrolladores que aún no han comenzado su carrera profesional y no tienen experiencia, o no conocen, los sistemas de control de versiones Git y Subversion.

  • Finalmente he liberado la última versión de mi sistema de actualización de servidores en paralelo, y al mismo tiempo lo he bautizado como "updatemyfarm" (actualiza mi granja, en español). Elegí el término "granja" porque creo representa mejor el sentido de heterogeneidad. Este script apunta a aquellos entornos con diferentes distribuciones y versiones, donde otras soluciones pueden tener problemas de compatibilidad a causa de las plataformas que utilizan. Por otro lado no está orientado a clusters, aunque podría utilizarse perfectamente para este fin.

    Esta última versión cuenta con varias correcciones de bugs y muchas mejoras, ya que ahora el proceso se realiza completamente en paralelo: primero se actualizan los repositorios de los sistemas basados en Debian; luego se ofrece al usuario el listado de servidores con actualizaciones disponibles; y finalmente se lanzan todas las actualizaciones al mismo tiempo.

    Pueden descargar una copia del mismo desde su repositorio en GitHub: linuxitux/updatemyfarm