Vamos configurar os repositórios:

echo "# REPOSITORIOS DEBIAN 7
deb http://ftp.br.debian.org/debian wheezy main
#
deb http://ftp2.de.debian.org/debian/ wheezy main
deb-src http://ftp2.de.debian.org/debian/ wheezy main
#
deb http://security.debian.org/ wheezy/updates main contrib
deb-src http://security.debian.org/ wheezy/updates main contrib" > /etc/apt/sources.list

Atualizando sistema e instalando dependências:

aptitude update
aptitude upgrade -y
aptitude install git-core gitweb python-setuptools

Depois, você clona e instala Gitosis do site principal do projeto:

git clone https://github.com/tv42/gitosis.git
cd gitosis
sudo python setup.py install

Na máquina cliente é necessário criar e copiar a chave:

ssh-keygen
cat /home/usuario/.ssh/id_rsa.pub

Voltando ao servidor vamos colar a chave e inicializar as configurações do gitosis:

nano /home/git/usuario.pub
chown git:git /home/git/usuario.pub
sudo -H -u git gitosis-init < /home/git/usuario.pub

Se tudo der certo aparecerá as linhas abaixo:

Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/

Vamos agora configurar a chave:

mkdir /home/git/.ssh/
cat /home/git/usuario.pub >> /home/git/.ssh/authorized_keys
nano /home/git/.ssh/authorized_keys

Adicionar trocando o git@usuario pelo usuário contido na chave pública.

command="gitosis-serve git@usuario",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty

Arrumando as permissões:

chown git:git /home/git/.ssh/ -R

Incluindo repositórios no servidor git gitosis

nano /home/git/repositories/gitosis-admin.git/gitosis.conf
cp /home/git/usuario.pub /home/git/repositories/gitosis-admin.git/gitosis-export/keydir/git@usuario.pub
nano /home/git/repositories/gitosis-admin.git/gitosis.conf

[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = git@usuario

[group developers]
writable = OlaMundoGIT
members = git@usuario

[repo OlaMundoGIT]
description = Meu primeiro repositorio
owner = git@usuario

Colocando senha no gitweb para acesso restrito editando o arquivo /etc/apache2/conf.d/gitweb:

AuthType Basic
AuthName "Authorization Required"
AuthUserFile /etc/apache2/senhas.txt
Require valid-user

Reiniciar o apache:

/etc/init.d/apache2 restart

Criando o arquivos de senhas:

htpasswd -c /etc/apache2/senhas.txt usuario

New password:
Re-type new password:
Adding password for user usuario

Voltando a máquina cliente vamos testar o repositório OlaMundoGIT criado:

mkdir OlaMundoGIT
cd OlaMundoGIT
# inicializamos o repositorio local
git init
# criamos o arquivo README
touch README
# Escrevemos algum texto no arquivo README
echo "Versao inicial " >> README
# adicionamos ao repositorio todos os arquivos que ainda não foram incluídos
git add .
# fazemos o commit no repositorio local. O git tem o conceito de commit local e remoto
git commit -am "Commit inicial"
# vinculamos o repositorio local ao repositorio remoto
git remote add origin git@IPDOSERVIDOR:OlaMundoGIT.git
# agora enviamos todos os arquivos commitados no repositório local para o repositorio remoto
git push origin master


Comente! para “Git, Gitosis e GitWeb no Debian Wheezy 7.1”

Deixe um comentário!

-->