servidor git local

“Servidor” repositório Git particular local

Não quer colocar seus arquivos Git em um servidor da nuvem? Podemos facilmente usar um repositório Git particular local. Existem várias formas de fazer isso. Pode ser em um pendrive, HD externo ou servidor NAS. Poderia até ser em qualquer outro diretório do seu PC, embora nesse caso não vejo razão para fazê-lo!

Sobre Git

Temos várias formas de fazer. A mais simples é criar ou clonar o repositório na pasta compartilhada e depois acessar de qualquer lugar da rede interna. Quem entende um pouco mais sobre o Git provavelmente já sabe isso, e se não sabia, agora consegue fazer a “mágica” acontecer. Mas como esse post e para aqueles que ainda não tem muita experiência, vou detalhar.

Para começar preciso explicar que não existe propriamente um servidor Git. Como O Git é um sistema de controle de versão distribuído gratuito e de código aberto, os arquivos estão sincronizados em vários lugares, podendo qualquer um deles ser usado para sincronizar os outros. O que poderíamos chamar de servidor é que está na nuvem, online, porque está sempre acessível a todos os colaboradores do projeto.

Nosso ambiente local

Para facilitar a explicação vamos imaginar um cenário:

Um computador de trabalho em que os arquivos do projeto estão em:

C:/xammp/htdocs/meu_projeto

E tenho um NAS onde quero centralizar a sincronização remota de todos os meus projetos:

/nas/projetos_git

Repositório Git particular local compartilhado

Existem duas formas de fazer isso no lado remoto: uma é criando um repositório remoto igual ao local e outra é criando um repositório bare compartilhado. Fica tranquilo, vou explicar a diferença. No servidor local sempre vamos iniciar um servidor em uma pasta onde está o projeto. O Git se encarrega de criar uma pasta .git com as configurações. Se criarmos um repositório bare, só tera o equivalente a pasta de configuração – .git, sem estar visível os arquivos da pasta do projeto. Normalmente, para um projeto git bare usamos uma pasta com .git no final como por exemplo “projeto_bare.git”.

Vou usar o bare para a pasta compartilhada.

mkdir /nas/projetos_git/meu_projeto.git
cd /nas/projetos_git/meu_projeto.git
git init --bare --shared

Pronto servidor pronto para receber sincronizações.

Esse comando vai criar os seguintes arquivos e pastas direto na pasta do repositório:

/nas/
projetos_git/

meu_projeto.git/
HEAD
config
description

hooks/
info/
objects/
refs/

Para criar um repositório “normal”, sem ser bare, e só criar uma pasta e executar o código git init.

mkdir /nas/projetos_git/meu_projeto
cd /nas/projetos_git/meu_projeto
git init

Respositório Git local de trabalho

Agora, se ainda não tivermos um repositório local, vamos criá-lo, ou melhor, vamos clonar o repositório que criamos anteriormente. Se já tem um repositório local pode ir para o próximo ponto.

cd C:/xammp/htdocs/
git clone /nas/projetos_git/meu_projeto.git

Esse comando cria o repositório local em uma pasta com o mesmo nome do repositório remoto que no caso é meu_projeto.

C:/
xammp/

htdocs/
meu_projeto/
.git/
arquivos_do_projeto_aqui

Incluindo o repositório remoto ao meu projeto local

Se já tínhamos um repositório git local funcionando, precisamos acrescentar o repositório remoto. Podemos verificar a quais repositórios remotos estamos conectados. Se criamos o repositório local com o comando anterior já estamos conectados ao repositório remoto.

Podemos verificar com o comando:

git remote -v

Vai aparecer uma resposta parecida com essa:

origin  /nas/projetos_git/meu_projeto.git (fetch)
origin /nas/projetos_git/meu_projeto.git (push)

Se não aparecer nada ou listar outros repositórios na nuvem, então vamos usar o seguinte comando para acrescentar:

git remote add repositorio_remoto_nome /nas/projetos_git/meu_projeto.git

Se tudo deu certo, agora tem um repositório particular compartilhado funcionando e sincronizando com as várias maquinas locais.

Comandos para sincronizar

Para baixar – ou seja, atualizar o repositório local pelo repositório remoto – use o comando pull. Para enviar os arquivos locais para o repositório remoto use o comando push.

git pull repositorio_remoto_nome master

git push repositorio_remoto_nome

Como bônus posso falar que existe uma espécie de aplicativo para instalar no servidor que cria um serviço para gerenciar repositórios como GitHub. É o Gitea (https://gitea.com/). Se se interessar por ele ou quiser que eu produza um manual aqui sobre como instalar e usar, coloque nos comentários.

Publicado por

Lisanias Loback

Pastor na Igreja Casa de Oração Para Todos os Povos, trabalhando na área social no NUSELON - Núcleo Social Evangélico de Londrina, uma ONG que cuida de crianças em situação de riscos. Atua na área de ensino teológico e na área de TI. É formado em Teologia pela UNIFIL e é técnico em contabilidade.

Nos encoraje deixando seu comentário aqui.