Configuración del servidor Git
En el capítulo anterior usamos Github como repositorio remoto. Los proyectos públicos de Github son gratuitos; desde 2019, los repositorios privados de Github también se pueden usar sin límites.
Por supuesto, también podemos configurar nuestro propio servidor Git para usarlo como repositorio privado.
Uso de un repositorio desnudo (Bare Repository)
1. Instalar Git
Instalar Git en un servidor Ubuntu:
sudo apt install git
Si tu sistema es Centos/RedHat, el comando de instalación es:
yum -y install git-core
Comando de instalación en Fedora:
# yum install git (Fedora 21 及之前的版本) # dnf install git (Fedora 22 及更高新版本)
A continuación, creamos un grupo de usuarios y un usuario git para ejecutar el servicio Git:
$ groupadd git $ useradd git -g git
2. Crear un repositorio desnudo
Inicia sesión como usuario Git y crea un repositorio desnudo en su directorio home.
$ sudo su - gitPrimero elegimos un directorio como repositorio Git, supongamos que es /home/gitrepo/ejemplo.git, y en el directorio /home/gitrepo ejecutamos el comando:
$ cd /home $ mkdir gitrepo $ chown git:git gitrepo/ $ cd gitrepo $ git init --bare ejemplo.git
El comando anterior crea un repositorio vacío en Git. Los repositorios Git en el servidor suelen terminar en.gitAl final. Luego, cambia el propietario del repositorio a git (si lo operan otros usuarios, como root):
$ chown -R git:git ejemplo.git
3. Crear inicio de sesión con certificado
Agrega tu clave pública a ~/.ssh/authorized_keys para permitir el acceso remoto.
Recopila las claves públicas de todos los usuarios que necesitan iniciar sesión. Las claves públicas se encuentran en el archivo id_rsa.pub. Importa nuestras claves públicas al archivo /home/git/.ssh/authorized_keys, una por línea.
Si no existe el archivo, créalo:
$ cd /home/git/ $ mkdir .ssh $ chmod 755 .ssh $ touch .ssh/authorized_keys $ chmod 644 .ssh/authorized_keys # 在文件中添加你的 SSH 公钥
4. Clonar el repositorio
$ git clone [email protected]:/home/gitrepo/ejemplo.git Cloning into 'ejemplo'... warning: You appear to have cloned an empty repository. Checking connectivity... done.
192.168.45.4 es la IP del servidor donde se encuentra Git; debes cambiarla a la IP de tu propio servicio Git.
Así queda completada la instalación de nuestro servidor Git.
Usar GitLab
GitLab es una potente herramienta de gestión de servicios Git, adecuada para equipos medianos y grandes, que ofrece funciones completas de gestión de usuarios, CI/CD, revisión de código, etc.
1. Instalar GitLab
SegúnDocumentación oficial de GitLabInstala GitLab.
Por ejemplo, en Ubuntu:
# sudo apt-get update # sudo apt-get install -y curl openssh-server ca-certificates tzdata perl # curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash # sudo EXTERNAL_URL="http://yourdomain" apt-get install gitlab-ee
EXTERNAL_URL="http://yourdomain" debe configurarse con tu propio dominio o IP pública, por ejemplo:
sudo EXTERNAL_URL=101.132.XX.XX yum install -y gitlab-ee
2. Configurar GitLab
Una vez completada la instalación, abre el navegador y visita http://yourdomain para configurar la cuenta de administrador.
Cuando aparezca información de salida similar a la siguiente, significa que GitLab se ha instalado correctamente.

Inicia sesión en GitLab y crea un nuevo proyecto. El nombre de usuario esroot。
Obtener la contraseña de inicio de sesión:
sudo cat /etc/gitlab/initial_root_password
El resultado es el siguiente:

En el primer inicio de sesión, usa el nombre de usuarioroot:

4. Generar el archivo de par de claves y obtener la clave pública
Instalar la herramienta Git (si ya está instalada, omítelo):
sudo apt-get install git
Generar el archivo de par de claves id_rsa:
ssh-keygen
Durante la generación del par de claves, el sistema solicita ingresar el directorio de almacenamiento del par de claves (por defecto, .ssh/id_rsa en el directorio del usuario actual, por ejemplo /home/test/.ssh/id_rsa) y la contraseña del par de claves. Puedes ingresarlos manualmente o presionar Enter para mantener los valores predeterminados.
Después de generarlo, se muestra la siguiente información:

Ver y copiar el contenido del archivo de clave pública id_rsa.pub:
cat .ssh/id_rsa.pub
Muestra información similar a la siguiente:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQVwWjF3KXmI549jDI0fuCgl+syJjjn55iMUDRRiCd/B+9TwUda3l9WXH5i7RU53QGRCsDVFZxixLOlmXr9E3VSqkf8xXBnHs/5E2z5PIOCN0nxfB9xeA1db/QxPwK4gkHisep+eNHRn9x+DpCYDoSoYQN0nBg+H3uqfOqL42mJ+tqSfkyqbhjBf1kjtDTlBfVCWtI0siu7owm+c65+8KNyPlj5/0AyJ4Aqk1OX2jv+YE4nTipucn7rHwWuowasPU86l+uBsLNwOSb+H7loJvQyhEINX2FS1KnpRU+ld20t07n+N3ErfX5xBAGfxXpoN9BKKSP+RT7rvTeXTVE**** [email protected]****
5. Crear un proyecto
En la página principal de GitLab, haz clic en la opción Create a project:

Haz clic en Create blank project, configura Project name y Project URL, y luego haz clic en Create project:

Este artículo usa el proyecto mywork como ejemplo.
6. Agregar clave SSH
En la página del proyecto actual, haz clic en Add SSH key:

Pega el contenido del archivo de clave pública id_rsa.pub en el cuadro de texto de Key:

Haz clic en Add key. Una vez agregada la clave SSH, se muestra como en la siguiente figura:

Copia el enlace Clone; este enlace se usará al realizar la operación de clonación:

Usar GitLab
1. Configurar la información de las personas que usan el repositorio Git, incluidos nombre de usuario y correo electrónico.
git config --global user.name "testname" git config --global user.email "[email protected]"
2. Clonar el proyecto creado a local.
git clone [email protected]:root/mywork.git

3. Subir archivos al servidor GitLab:
Entrar al directorio del proyecto:
cd mywork/
Crear el archivo de destino que se necesita subir a GitLab:
echo "test" > /home/test/test.sh
Copiar el archivo o directorio de destino al directorio del proyecto:
cp /home/test/test.sh ./
Agregar el archivo test.sh al índice:
git add test.sh
Confirmar test.sh en el repositorio local:
git commit -m "test.sh"
Sincronizar el archivo al servidor GitLab:
git push -u origin main

En la página web, verifica que el archivo test.sh subido ya se ha sincronizado al servidor GitLab:
