Introducción
El servidor más famoso de Git es Github Desde enero de 2010, GitHub (En este sitio el código se almacena de forma pública y gratuíta, aunque también se puede hacer de forma privada, creando una cuenta de pago).
Un repositorio remoto es normalmente un repositorio básico mínimo, un repositorio Git sin carpeta de trabajo. Debido a que dicho repositorio se va a utilizar exclusivamente como un punto de colaboración, no tiene sentido el tener una instantánea de trabajo (snapshot) activa en el disco (checkout); nos basta con tener solamente los propios datos Git. Básicamente, un repositorio básico mínimo son los contenidos de la carpeta ‘.git’, tal cual, sin nada más.
¿Porqué tener mi propio servidor?
- Acceder desde cualquier lugar
- Gratuíto
- Software Libre
- Control total de código y accesos
- Permite desarrollo colaborativo (Para esto no es imprescindible pero si muy recomendable)
- Todo el mundo enviará (push) y recibirá (pull) a o desde allí
¿Qué protocolo(s) elegir?
Más info http://git-scm.com/book/es/Git-en-un-servidor-Los-Protocolos
En mi opinión lo mejor es una combinación de varios de ellos para proveer todo tipo de acceso
¿Cómo lo instalo?
#CREAMOS LAS CLAVES SSH cd ~/.ssh # si no existen id_dsa y id_dsa .pub ssh-keygen #completamos lo que nos solicitan #CREAMOS EL USUARIO GIT sudo adduser git su git cd mkdir .ssh sudo cp ~/.ssh/id_rsa.pub /home/git su git cat ~/id_rsa.pub >> ~/.ssh/authorized_keys exit #LA PRIMERA VEZ #Hacemos un repositorio local cd ~ mkdir my_project cd my_project git init cd ~ git clone --bare my_project my_project.git #PONER EL REPOSITORIO EN EL SERVER scp -r my_project.git ruben0909@192.168.1.130:/media/DATOS1 #permisos en el directorio a git cd /media/DATOS1/my_project.git #DAR PERMISOS A GIT SOLO PARA COSAS DE GIT #Para una mayor protección, puedes restringir facilmente el usuario 'git' a realizar solamente actividades relacionadas con Git which git-shell #anotar resultado sudo nano /etc/passwd #En la linea parecida a #git:x:1000:1000::/home/git:/bin/shgit:x:1000:1000::/home/git:/bin/sh #sustituir /bin/sh por el resultado de "which git-shell" #Ctrl + o , Ctrl +x #SUCESIVAS VECES PARA CREAR UN NUEVO REPOSITORIO cd /media/DATOS1/ mkdir project2.git cd project2.git git --bare init #CLONAR REPOSITORIO(otro usuario) git clone ruben0909@192.168.1.130:/media/DATOS1/my_project2.git #Clonar repositorio SmartGit git clone ssh://ruben0909@192.168.1.130:/media/DATOS1/my_project2.git
En mi caso he elegido el protocolo SSH pero podéis utilizar cualquier otro en adición, a continuación os dejo un enlace a un tutorial en el que se explica
Haz click AQUÍ para continuar.
Apasionado, geek, ingeniero de locuras y absolutamente convencido de nada