La configuración que vamos a usar para configurar el servidor de git es de las mas básicas y no repara en la configuración de usuarios -cualquier usuario con acceso SSH nos sirve-. Mas bien esta configuración es para montar un servidor que podamos usar en nuestra casa o en un grupo de usuarios de confianza.
SERVIDOR:
Primero lo primero, instalar git y la gui de git (es opcional la gui, pero si estas usando una distro con interfaz gráfica te va a venir bien tenerla).
sudo apt-get install git-core git-gui
Bien, ahora que tenemos git instalado, necesitamos decidir donde vamos a almacenar todos los repositorios que creemos. En mi caso me hice una carpeta llamada git en mi home:
cd /home/capy
mkdir git
Listo, de momento terminamos con el servidor. Vamos al cliente:
CLIENTE:
Mi cliente es un Windows, pero los pasos de la configuración son igualmente validos sobre cualquier linux o mac.
primero te vas a crear una carpeta donde vas a tener tu proyecto., o si ya la tenes partimos de ahí. En mi caso es una pagina web y voy a crear en mi windows la carpeta “ecapy.com”
Cuando tengas la carpeta creada o localizada entramos, hacemos clic derecho y seleccionamos del menú contextual “Git Bash”. Con la consola ya abierta vamos a tirar el siguiente comando para indicarle a git que cree un repositorio con estos archivos (los de tu proyecto):
git init && git add * && git commit -m "Primer commit"
Ya tenemos un repositorio de git en nuestro cliente y vamos a copiarlo al servidor en dos pasos.
Paso 1: le decimos a git que haga una copia limpia de nuestro repositorio:
git clone --bare ecapy.com ecapy.com.git
lo anterior habrá creado una carpeta nueva llamada “ecapy.com.git” en nuestro repositorio local.
Paso 2: copiemos nuestro repositorio al servidor:
scp -r ecapy.com.git [email protected]:/home/capy/git/
Hemos terminado con esta parte. Ya podemos borrar la carpeta “ecapy.com.git“.
SERVIDOR:
Vamos al servidor que tenemos que configurar un par de cosas mas.
Entramos en la carpeta que copiamos hace un instante y aplicamos un poco de configuración:
cd /home/capy/git/ecapy.com
git config core.sharedrepository 1 && git config receive.denyNonFastforwards true && find objects -type d -exec chmod 02770 {} \;
Volvamos al cliente:
Ya tenes un repositorio remoto que funciona correctamente. ya podes clonarte de el.
NOTA 1: la carpeta que usaste en el cliente para crear el repositorio en el servidor no tiene configurado cual es su origin, por lo que deberías lanzar por consola:
git remote add origin [email protected]:/home/capy/git/ecapy.com.git
O simplemente borra esa carpeta y clonate una nueva que ya tiene configurado el origin:
git clone [email protected]:/home/capy/git/ecapy.com.git
NOTA 2: Muchísimo cuidado con lo siguiente: después de seguir estas instrucciones vas a ver que estas trabajando en la rama principal de tu repositorio… crea urgente una rama y cámbiate a ella.