jueves, 27 de enero de 2011

GIT: Crear un proyecto y subirlo a un servidor

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í:
LOCAL
mkdir 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).
LOCAL
echo 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:
SERVIDOR
mkdir ejemplo.git
cd ejemplo.git

Una vez creada la carpeta se inicializará el respositorio con este comando (desde la carpeta):
SERVIDOR
git init --bare --shared=group

Asignarle el bit s a la carpeta creada
SERVIDOR
cd ..
chmod -R g+s ‘ejemplo.git’

Tener cuidado de asignar la carpeta al grupo que queramos (en este caso utilizamos el grupo git):
SERVIDOR
chgrp -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:
LOCAL
git 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:
LOCAL
rm -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,...

No hay comentarios:

Publicar un comentario