Criando um repositório Git no seu servidor Linux

Boa tarde pessoal, hoje vou mostrar como instalar um repositório Git no seu servidor Linux CentOS para que você possa estar versionando suas aplicações. O primeiro passo é baixar o Git, segue abaixo como instalar:

Servidor Remoto

[root@shadow ~]# yum install git-core curl-devel \
 expat-devel gettext-devel openssl-devel zlib-devel

Após instalar o Git no seu servidor é interessante organizar a coisa toda. Então vamos criar um usuário git com o seu diretório home.

[root@shadow ~]# useradd git
[root@shadow ~]# passwd git
[root@shadow ~]# cd /home/git

Aqui costumo criar um diretório p/ cada projeto, vai de cada um, mas prefiro assim pois pode ser que não seja do seu interesse que todos acessem todos os projetos.

[root@shadow git]# mkdir teste.com.br

Inicializando sua estrutura no servidor

[root@shadow teste.com.br]# pwd
/home/git/teste.com.br

[root@shadow teste.com.br]# git --bare init
Initialized empty Git repository in /home/git/teste.com.br/

[root@shadow teste.com.br]# git config --bool core.bare true

Segue a estrutura que foi criada no diretório

 
[root@shadow teste.com.br]# ls -lha
total 40K
drwxr-xr-x 7 root root 4.0K Sep 24 03:10 .
drwx------ 4 git  git  4.0K Sep 24 03:10 ..
drwxr-xr-x 2 root root 4.0K Sep 24 03:10 branches
-rw-r--r-- 1 root root   66 Sep 24 03:10 config
-rw-r--r-- 1 root root   73 Sep 24 03:10 description
-rw-r--r-- 1 root root   23 Sep 24 03:10 HEAD
drwxr-xr-x 2 root root 4.0K Sep 24 03:10 hooks
drwxr-xr-x 2 root root 4.0K Sep 24 03:10 info
drwxr-xr-x 4 root root 4.0K Sep 24 03:10 objects
drwxr-xr-x 4 root root 4.0K Sep 24 03:10 refs

Aqui nosso servidor está pronto p/ receber as atualizações. Vou mostrar abaixo como configurar o seu Linux e o seu Netbeans para fazer as atualizações, vai ser legal eu acho.

Repositório Local

Abra o seu Netbeans e mãos à obra, clique na opção Team -> Git -> Clone. Percebam que o [shadow.com.br] é o nome do seu servidor e o [teste.com.br] é o nome do diretório que criamos anteriormente no servidor. Nos campos Username você coloca o usuário que criamos no servidor linux e a senha no nosso caso aqui é o usuário git e a senha que você achar melhor.

netbeans01

Aqui você vai clicar em Finish

Netbeans02

Bom aqui finaliza a instalação e configuração do Git, é isso aí acho que agora vocês já tem um start da instalação, mas este serviço é muito mais amplo ainda, legal de explorar, tomara que tenham gostado.

Problemas encontrados

Ao executar o push depois de dar um commit em um determinado arquivo recebi a mensagem REJECTED_OTHER_REASON.

=============================================================

==[IDE]== Sep 28, 2013 12:48:50 PM Pushing – br.com.cybersoul
git branch
git remote -v
setting up remote: origin
git push git.cybersoul.com.br:br.com.cybersoul refs/heads/master:refs/heads/master
Remote Repository Updates
Branch Add : master
Id : e717cebbb00b65cdb0fa0970c871a1a61d30bc9e
Result : REJECTED_OTHER_REASON

Local Repository Updates
Branch Add : origin/master
Id : e717cebbb00b65cdb0fa0970c871a1a61d30bc9e
Result : NOT_ATTEMPTED

==[IDE]== Sep 28, 2013 12:48:59 PM Pushing – br.com.cybersoul finished.

=============================================================

Para que ele não rejeite sua atualização você deve executar um comando no seu servidor Git:

git config --bool core.bare true

Após executar o comando e realizar push sua atualização será completada com sucesso. Conforme o exemplo abaixo:

=============================================================

==[IDE]== Sep 28, 2013 12:50:27 PM Pushing – br.com.cybersoul
git branch
git remote -v
setting up remote: origin
git push git.cybersoul.com.br:br.com.cybersoul refs/heads/master:refs/heads/master
Remote Repository Updates
Branch Add : master
Id : e717cebbb00b65cdb0fa0970c871a1a61d30bc9e
Result : OK

Local Repository Updates
Branch Add : origin/master
Id : e717cebbb00b65cdb0fa0970c871a1a61d30bc9e
Result : NEW

git branch –set-upstream-to origin/master master
Branch master set to track origin/master

==[IDE]== Sep 28, 2013 12:50:29 PM Pushing – br.com.cybersoul finished.

Leave a Reply

Your email address will not be published. Required fields are marked *