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.

