Artigos, Debian, LinuxArtigos > Configurando um servidor de Git no Debian

Artigos > Configurando um servidor de Git no Debian

O Git é um sistema de versionamento largamente utilizado por profissionais de TI, principalmente por Sysadmins, desenvolvedores e devops.

Basicamente, com ele podemos armazenar arquivos e controlar modificações. Isso nos possibilita restaurar versões prévias de tais arquivos, saber quando determinada alteração foi realizada, entre outros. O Git possibilita um mesmo repo ser utilizado por mais de uma pessoa. Por isso é utilizado em larga escala em times de desenvolvimento.

Neste artigo explicarei como configurar um git server, de forma que esse repositório do Git poderá ser utilizado em mais de um local, como abordado no exemplo anterior.

Como funciona

Antes de instalarmos e configurarmos o Git, precisamos entender onde aplica-se seu uso.

Basicamente, na maioria dos casos, o Git roda em um servidor que pode ser na rede local ou na Web. Nesse server mantemos um repositório central, o que vamos chamar de Git Server.

Localmente, na sua estação de trabalho, por exemplo, é mantido um repositório local, ou seja, um clone do repo central. Nos arquivos dentro desse repo local você realiza suas modificações e, ao concluí-las, as envia para o git server. Aquilo que modificiou e seus comentários sobre suas mudanças são armazenados para consulta posterior.

Caso outras pessoas possuam um clone desse repo, bastará rodar o comando git pull para obter as mudanças que você realizou e que já estarão armazenadas no git server.

Inclusive, recomendo rodar git pull antes de enviar modificações para o git server.

Na imagem abaixo podemos ver um exemplo de um time que pode ser de desenvolvimento. Todos trabalham com um repositório local e enviam e recebem mudanças de um repositório central:

Instalando e configurando um Git Server:

No passo a passo abaixo instalaremos o Git em um servidor com Debian.

Configurações feitas no servidor:

1 – Primeiramente é preciso instalar o pacote “git” no servidor. Para isso, execute o comando abaixo:

apt-get update && apt-get install git

2 – Agora é preciso criar o usuário que utilizaremos para acessar o repositório do Git.

useradd git -s -d /home/git

3 – Agora criaremos o diretório home do usuário ‘git’ (/home/git) e nele o path onde armazenaremos o repositório do nosso primeiro repo que se chamará ‘lab’:

mkdir -p /home/git/repos/lab.git

4 – Agora ajustaremos o owner:group dos diretórios que criamos:

chown -R git:git /home/git

5 – Vamos usar o usuário ‘git’ para configurar o repo. Assim não precisaremos ajustar owner:group novamente:

su git -l

6 – Agora entre no path onde manteremos a estrutura do repo:

cd repos/lab.git

7 – Por fim, vamos iniciar um repo aqui. Para isso, utilizaremos o comando abaixo:

git --bare init

8 – Deslogue do usuário “git” e volte com o usuário “root”.

Daqui para frente pouco utiliará o usuário “git”. Portanto, vamos aumentar a segurança do user trocando seu shell default.

9 – Altere o shell do usuário “git” para deixar seu repo mais seguro:

usermod -s /usr/bin/git-shell

Com isso, ao tentarmos logar com o usuário “git”, receberá a mensagem abaixo:

# su git -l
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.

Configurações feitas no desktop:

Agora vamos configurar nosso desktop.

1 – Crie um diretório onde manterá o repo local:

mkdir ~/Git/

2 – Entre nesse diretório:

cd ~/Git/

3 – Agora clone o repositório remoto para o seu desktop com o comando:

git clone git@host-ou-ip-do-servidor:~/repos/lab.git

Obviamente, troque “host-ou-ip-do-servidor” pelo Host ou IP do servidor onde está o git server, mas isso você já sabe…

4 – Se tudo der certo, terá criado um diretório chamado “lab”. Entre nele.

5 – Faremos agora o primeiro commit. Primeiro, crie um arquivo em branco:

touch la_vai_meu_teste.txt

6 – Adicione esse arquivo ao Git:

git add la_vai_meu_teste.txt

7 – Comente esta inclusão:

git commit -am "Meu primeiro commit uhull" la_vai_meu_teste.txt

8 – E por fim, suba a alteração para o git server:

git push

Conclusão:

Versionamento é essencial nos dias de hoje. Mesmo que você não trabalhe em conjunto com outros profissionais, saber um pouco de Git é primordial para manter organizados seus arquivos de configurações, controle e/ou consulta. E não me venha falar de Dropbox, Evernote, etc… isso é para amadores e preguiçosos e você não é um :)

Categories: Artigos, Debian, Linux Tags: , , , , , , , ,

Comments

No Comments Yet. Be the first?

Post a comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

This site uses Akismet to reduce spam. Learn how your comment data is processed.