La instalación y configuración de git es muy sencilla, pero se requiere que el lector tenga conocimiento básico en Linux.
Una vez que tenemos disponible el servidor, empezamos:
Consideraciones iniciales
Para una instalación eficiente de git debemos tener en cuenta:
- Contar con acceso de usuario root: para instalar paquetes, crear usuarios, crear grupos, crear directorios, etc.
- Estimar dentro de lo posible el espacio que se va a usar y el crecimiento de uso de espacio (dimensioning & capacity planning).
- Tener una redundancia RAID en los discos si es para producción. Recomiendo RAID-5.
- Usar discos SSD (solid-state drive), si su repositorio va a generar mucha actividad.
- Abrir sólo la puerta del firewall necesaria en el servidor 9418 (git://).
- Si están dentro de una VLAN para uso exclusivo de desarrollo, configurar QoS (Quality of Service) en el Switch para este servidor.
- Establecer una estrategia de respaldo y recuperación.
- Instalar los últimos paquetes disponibles del sistema operativo.
- Si es posible sincronizar el reloj del servidor, NTP (Network Time Protocol).
- Dirección IP estática y si va a tener acceso desde internet hacer el NAT (Network Address Translation) hacia una IP pública.
- Nota importante: si estás publicando tu repositorio en internet, debe estar en la DMZ.
- Si va a usar otros clientes para usar git, asegurarse abrir las puertas 22 (ssh), 80 (http), 443 (https) en el firewall.
Instalación de software
Con usuario root o sudo, ejecutamos:
$ su -
# dnf -y install git
Comprobar la versión
Una vez que la instalación finalizó comprobamos la versión de git. A esta fecha (27/Dic/2019), la versión disponible es 2.18.1:
# git --version
Crear grupo de usuarios
Crear un grupo de usuarios para los permisos al repositorio:
# groupadd reposcm
Creación del usuario administrador
Crear un usuario administrador del repositorio:
# useradd –g reposcm -c "Git Admin" gitadmin
# passwd gitadmin
Crear directorio
El repositorio va a ser creado donde usted lo necesite, si tiene un storage externo debe ser direccionado hacia ese punto. En mi caso lo voy a crear en el directorio /var
# cd /var
# mkdir gitrepo
# chmod g+rwx /var/gitrepo
# chown :reposcm /var/gitrepo
# chown gitadmin /var/gitrepo
Inicializar nuestro repositorio
Configurar nuestro repositorio, nos conectamos con el usuario gitadmin:
$ cd /var/gitrepo
$ mkdir repositorio.git
$ cd repositorio.git
$ git init --bare
$ git config core.sharedRepository true
$ git config receive.denyCurrentBranch ignore
Verificar la Configuración
Aquí ya tenemos configurado nuestro servidor, para revisar la configuración en git, usamos:
$ git config --list
Creación de un usuario del repositorio
Crear un usuario, tendrá que crear tanto usuarios como acceso quiera otorgar a su repositorio, con usuario root:
# useradd –g reposcm -c "Ing. Juan Leon" juanleon
# passwd juanleon
Configurar su identidad
Configurar nuestra identidad en el repositorio, puede ser en el mismo servidor para hacer unas pruebas (en mi caso con el usuario juanleon):
$ git config –-global user.name "Juan Leon"
$ git config –-global user.email juanleon@solucionesleon.com
El primer commit
Crear un archivo de prueba para nuestro primer commit, logeado con mi usuario juanleon.
$ cd /home/juanleon
$ git clone ssh://juanleon@centos8/var/gitrepo/repositorio.git
$ cd repositorio
$ touch esta_es_una_prueba.txt
$ git add .
$ git commit –m "mi primer commit"
Finalizar instalación
Tenemos un servidor git propio usando CentOS 8. Ahora podemos acceder a nuestro repositorio desde nuestro IDE (Integrated Development Environment) preferido en mi caso Visual Studio y Eclipse. También puede que este acostumbrado a usar github ... si desea poder navegar en su repositorio desde la web puede instalar gitlab.
Problemas comunes en la instalación de git en CentOS
A continuación una lista con los posibles problemas que pueden aparecer en la instalación de git y cómo solucionarlos:
"No se encuentra el paquete Git": A veces, al intentar instalar git, puede recibir un mensaje que indica que el paquete no se encuentra. Asegúrese de que su sistema esté actualizado y que los repositorios correctos estén habilitados. Ejecute:
sudo yum update -y
sudo yum install git -y
"Permiso denegado" al intentar instalar Git: Si recibe un error de "Permiso denegado" al intentar instalar Git, probablemente no está utilizando una cuenta con permisos suficientes. Ejecute el comando de instalación con `sudo` para obtener privilegios de superusuario:
sudo yum install git -y
"Git command not found" después de la instalación: Después de instalar Git, el sistema indica que el comando `git` no está disponible. Asegúrese de que la instalación se realizó correctamente verificando la versión de Git:
git --version
Si no se encuentra el comando, intente reinstalar git o verifique que su PATH esté configurado correctamente.
Conexión fallida al clonar un repositorio: Puede que reciba un error de conexión fallida al intentar clonar un repositorio desde GitHub o GitLab. Verifique su conexión a Internet y asegúrese de que el servidor remoto esté accesible. También puede ser útil comprobar si hay restricciones de firewall que bloqueen el acceso.
Error "SSL certificate problem" al clonar un repositorio: Este error ocurre cuando Git no puede verificar el certificado SSL del servidor remoto. Puede desactivar temporalmente la verificación SSL (no recomendado para ambientes de producción) o configurar Git para que reconozca el certificado del servidor:
git config --global http.sslVerify false
Error "Permission denied (publickey)" al conectar a un repositorio SSH: Si intenta conectarse a un repositorio utilizando SSH y recibe un error de "permission denied", es probable que su clave SSH no esté configurada correctamente. Asegúrese de que su clave pública SSH esté agregada a su cuenta de GitHub, GitLab, o el servidor que esté utilizando. Puede generar una nueva clave SSH con:
ssh-keygen -t rsa -b 4096 -C "su_email@example.com"
Git se instala en una versión antigua: Si instala Git desde los repositorios predeterminados de CentOS, puede obtener una versión más antigua. Para instalar la versión más reciente de Git, puede compilarla desde la fuente o usar un repositorio más actualizado:
sudo yum remove git
sudo yum install https://repo.ius.io/ius-release-el8.rpm -y
sudo yum install git2u -y
Configuración de Git después de la instalación: Después de instalar git, debe configurarlo para su uso, de lo contrario, podría enfrentar problemas al intentar hacer commits. Configure su nombre de usuario y correo electrónico con los siguientes comandos:
git config --global user.name "su_nombre"
git config --global user.email "su_email@example.com"
Error "Repository not found" al intentar clonar o acceder a un repositorio: Esto sucede cuando el repositorio no existe en la URL proporcionada, o su cuenta no tiene acceso a él. Verifique que la URL del repositorio sea correcta y que tenga los permisos adecuados para acceder a él. Revise también si ha iniciado sesión correctamente en la plataforma de control de versiones.
"Error: Your local changes to the following files would be overwritten by merge" al hacer un pull: Este error ocurre cuando intenta hacer un pull y tiene cambios locales que no se han comprometido (commit o comitiados). Puede comprometer (commit) sus cambios locales, guardarlos temporalmente con `git stash`, o forzar el pull (con precaución):
git stash
git pull
Conclusión
Instalar Git en CentOS 8 es un proceso sencillo y directo que permite a los desarrolladores gestionar versiones de su código de manera eficiente. Siguiendo los pasos descritos en este artículo, desde la instalación del software hasta la configuración de usuarios y repositorios, puede establecer un servidor Git robusto y funcional. Esta guía asegura que pueda empezar a usar Git en tu entorno de desarrollo con facilidad y seguridad.