sábado, 12 de diciembre de 2009

GIT y GITOSIS en Ubuntu 8.04 LST

1.Installar GIT

Primero instalamos los paquetes para que funcione git y ademas instalamos gitosis que nos permitira trabajar en un entorno de desarrollo multiusuario.

sudo su
cd /usr/src
aptitude install git git-clone
git clone git://eagain.net/gitosis.git
cd gitosis
python setup.py install


Nota: Si hay error con python se dede:
aptitude install python-setuptools


Creamos una usuario para git, en cuyo home tendremos los proyectos de desarrollo.

adduser --system \
--shell /bin/sh \
--gecos 'git version control' \
--group \
--disabled-password \
--home /home/git \
git


2.Habilitar llaves ssh para el acceso.

El usuario/administrador que desee poder acceder a GIT debe generar una clave pública.
Desde la línea de comandos debe ejecutar:
ssh-keygen -t rsa

Ahora se debe copiar la clave publica contenida en el archivo id_rsa.pub al servidor que contiene GIT.
Ejemplo:
scp $HOME/.ssh/id_rsa.pub usuario@server:/home/usuario/id_rsa.pub


Ahora en el server debemos hacer que gitosis agregue la clave publica del usuario, para darle permiso de acceso.

sudo -H -u git gitosis-init < path_to_file/id_rsa.pub
chmod 755 /home/git/repositories/gitosis-admin/hooks/post-update


3.Configurar GITOSIS desde la maquina del usuario/administrador

El usuario/administrador debe instalar GIT en su maquina.

sudo aptitude install git


El usuario/administrador debe crear una réplica del repositorio GIT que está en el servidor.

mkdir $HOME/proyectos
cd $HOME/proyectos
git clone git@:gitosis-admin.git
cd gitosis-admin


3.a. Archivo de configuración de GITOSIS

vim gitosis.conf

##Archivo de configuración de gitosis
[gitosis]
gitweb = yes #Habilitan el acceso web a todos
daemon = yes #los proyectos del repositorio


[group gitosis-admin]
writable = gitosis-admin #Nombre del proyecto, existe un directorio con el mismo nombre
members = user@worksation #Usuarios con acceso, debe existir el
#archivo user@worksation.pub en gitosis-admin/keydir/
[repo gitosis-admin]
gitweb = no #Acceso web al proyecto
daemon = no

## Agregamos los proyectos de desarrollo

[group develop]
writable = proyecto1 #Nombre del proyecto, existe un directorio con el mismo nombre
members = user@worksation #Usuarios con acceso, debe existir el
#archivo user@worksation.pub en gitosis-admin/keydir/
[repo proyecto1]
owner = El Administrador #Propietario del proyecto
description = Test repository #Descripción del proyecto


Siempre despues de editar el archivo gitosis.conf debemos subir los cambios al server.

Cambiar, add, commit, push !!!!

git add .
git commit -a -m "Añadido "
git push


4. Comenzando a trabajar con GIT y GITOSIS

El administrador crea un nuevo proyecto, todo se realiza desde el workstation y no en el server.

1. Agregar los cambios en el gitosis.conf
2. git add, commit, push !!!!

Ahora tenemos creado el proyecto, pero no existe el directorio, entonces:

mkdir proyecto1
cd proyecto1
git init
git remote add origin git@YOUR_SERVER_HOSTNAME:proyecto1.git


Creamos un archivo de pruebas

touch test
git add .
git commit -a -m "Creado el directorio del proyecto y un archivo de pruebas"
git push origin master:refs/heads/master

No hay comentarios:

Publicar un comentario