El proceso inicial es bastante raro, aviso.
Se supone que hemos estado trabajando con nuestro repositorio local, pero ahora queremos subirlo a nuestro repositorio central para compartirlo con mas gente.
Para ello vamos a crear la carpeta en el servidor, vamos a configurarla y después uniremos el trabajo realizado en local con la carpeta en el servidor.
Se supone que ya tenemos nuestra carpeta creada
localmente (
git init, git add, git commit, etc), pero para que no haya lios vamos a mostrar el proceso entero.
En local creamos la carpeta ejemplo, e
inicializamos el proyecto ahí:
LOCALmkdir ejemplo
cd ejemplo
git init
Si intentamos sincronizar el proyecto vacío nos devolverá
error (
No refs in common and none specified; doing nothing.), así que añadimos nuestros archivos del proyecto y realizamos un commit (pondré algo a modo de ejemplo, pero podéis poner el vuestro proyecto directamente).
LOCALecho ejemplo > ejemplo.txt
git add .
git commit
Ahora vamos a crear la carpeta en el
servidor, donde vamos a guardar el proyecto.
El directorio raíz de todos los proyectos lo vamos a situar en
/var/git (se puede cambiar).
No hay ningún problema en ponerlo en otro sitio.
Por estándar el nombre de la carpeta del proyecto es el mismo que el del proyecto local, pero terminado en .git, si nuestro proyecto se llama ejemplo, pues usaremos “ejemplo.git”.
Nos situamos en
/var/git,
creamos la carpeta ejemplo.git y entramos en ella:
SERVIDORmkdir ejemplo.git
cd ejemplo.git
Una vez creada la carpeta se
inicializará el respositorio con este comando (desde la carpeta):
SERVIDORgit init --bare --shared=group
Asignarle el
bit s a la carpeta creada
SERVIDORcd ..
chmod -R g+s ‘ejemplo.git’
Tener cuidado de
asignar la carpeta al grupo que queramos (en este caso utilizamos el grupo git):
SERVIDORchgrp -R git ejemplo.git
Ya hemos terminado el trabajo en el servidor, ahora solo quería
sincronizar el proyecto desde donde tengamos nuestro repositorio local, si estamos en nuestra maquina en la carpeta ejemplo hacemos:
LOCALgit push --all ssh://’user’@’server’/var/git/ejemplo.git
Una vez hecho esto ya esta en el servidor.
Para que queden bien todas las
referencias dentro del proyecto lo mas sencillo es borrarlo del repositorio local, y clonarlo desde el servidor, así no habrá problemas:
LOCALrm -rf ejemplo
git clone ssh://’user’@’server’/var/git/ejemplo.git
Debemos asegurarnos que
‘user’ pertenece al mismo
grupo al que pertenece la carpeta que queremos bajar(en este caso git).
Podemos editar el fichero
/etc/group y añadirnos:
git:x:1005:user1,user2,user3,...