git-logoEste artículo es un «Copy & Paste» resumido y retocado del artículo original con el título «Servidor Git en Linux» que se encuentra en la web de Decabyte, puede acceder al artículo original en este enlace.

Git es un software que permite el control de versiones, no solo de software sino de todo tipo de archivos. Fue creado por Linus Torvalds y es tan poderoso que se ha confiado a éste la gestión de versiones del mismísimo kernel del Linux. (Ver en wikipedia).

Git es software libre bajo la licencia GNU/GPL v.2, y su lado más conocido es a través de GitHub, una poderosa y versátil aplicación web que permite una administración intuitiva de los repositorios y provee servicios complementarios como visualizaciones del código, manejo de incidencias, estadísticas, wiki entre otras.

Para realizar la instalación del servidor Git en nuestro servidor, puede seguir los pasos de instalación que a continuación se detallan:

Tener en cuenta
Tener un servidor con ssh con acceso externo
Crear una carpeta para los repositorios, en este caso: «/var/git/»
En este caso el servidor está en server.dyndns.org

Instalar Git, (tener permisos de root)
apt-get update
apt-get install git-core

Crear el repositorio en el servidor

Crear la carpeta del repositorio
mkdir /var/git/repo.git
cd /var/git/repo.git

Inicializar repositorio
git init –bare

Crear el usuario que podrá acceder (si es requerido)
useradd pepito

Dar permisos de escritura sobre la carpeta del repositorio
chown -Rv pepito:pepito /var/git/repo.git

Acceder el repositorio desde el cliente
Ir a la carpeta donde se quiere descargar el repositorio

Clonar el repositorio (solicita la contraseña de pepito)
git clone pepito@server.dyndns.org:/var/git/repo.git

Entrar a la carpeta
cd repo

Utilizar el repositorio
Hacer cambios: crear archivos, copiar carpetas, modificaciones, etc.

Hacer el primer commit
git commit -a -m «Primer commit»

Hacer el primer push y crear la rama ‘master’
git push origin master

Luego de esto se puede usar como cualquier otro repositorio git (incluidos los de GithHub): administrar ramas, hacer pull, commit, add, push, etcétera. La única diferencia es que en este caso, cada que se vaya a acceder el repositorio remoto va a solicitar la contraseña de usuario.

Para finalizar, existe una buena herramienta para ver gráficamente los repositorios de nuestro propio servidor, se llama SmartGit y se puede descargar desde aquí.