Este post foi feito para usuários avançados. Um requisito importante para esta técnica é ter acesso SSH ao servidor e saber usar SSH.
Instalar o Git
Em servidores compartilhados, não deve ser comum encontrar o Git instalado. Para instalar o Git, os passos são (atenção, você precisa ter bastante espaço livre no servidor de hospedagem):
- Baixar o pacote .tar.gz ou .tar.bz2 do Git
- Criar a pasta /home/<usuario>/usr
- Descompactar o pacote do Git e rodar ./configure --prefix=/home/<usuario>/usr
- make && make install
Assim os binários do Git ficarão instalados no seu diretório /home/<usuario>/usr/bin/
Você pode remover o pacote do Git (arquivo .tar.gz ou .tar.bz2) e a pasta de compilação a fim de liberar espaço.
Criar o repositório Git remoto
Crie um diretório para seu novo repositório. Este diretório precisa ficar localizado dentro de uma pasta que o Apache é capaz de dar acesso às pessoas de fora. No meu caso (CPanel + Apache), a pasta fica em /home/<usuario>/public_html/repo, portanto executo o seguinte comando:
$ cd /home/leopinheiro/public_html/repo
$ mkdir repositorio.git
Entre no diretório e inicialize um repositório Git cru:
$ cd repositorio.git
$ git --bare init
> Initialized empty Git repository in /home/jwaine/public_html/repo/repositorio.git/
Configurar o repositório Git local para acessar o Git remoto
O Git é um sistema de controle de versão distribuído, e não existe "dar commit no repositório remoto" da mesma forma como usuários de Subversion e CVS fazem. Todo commit tem que ser dado no repositório local e, opcionalmente, o usuário pode publicar seu repositório remotamente (copiando o repositório local para o repositório remoto).
Para criar um repositório Git local:
- Crie uma pasta para o repositório Git
- Rode "git init" dentro da pasta
- Faça o primeiro commit
Ok, de agora adiante estou assumindo que o leitor já tem um repositório Git local.
Configure seu repositório local para acessar o repositório remoto:
$ git remote add <nome_do_repositorio_remoto> ssh://<usuario_da_shell_remota>@<endereço_IP_ou_host>:/home/<usuario>/caminho_do_repositorio
No meu caso, o comando seria este:
$ git remote add repositorio-web ssh://leopinheiro@pinheiro.eng.br/~/public_html/repo/repositorio.git
Caso você tenha errado ao adicionar o repositório remoto (ou precise mudar a configuração), pode alterá-la editando o arquivo local <pasta_do_repositorio>/.git/config
Empurrar o repositório Git local para o Git remoto
Para empurrar todo o repositório local para o repositório remoto, execute:
$ git push --all <nome_do_repositorio_remoto>
No meu caso, o comando seria:
$ git push --all repositorio-web
Se você receber o erro: git-receive-pack: command not found
Se você receber este erro, então deverá mudar o comando git-push para:
$ git push --receive-pack=~/usr/bin/git-receive-pack --all <nome_do_repositorio_remoto>
No meu caso, o comando seria:
$ git push --receive-pack=~/usr/bin/git-receive-pack --all repositorio-web
Puxar o repositório Git remoto para o repositório Git local
Se você colocou a pasta do repositório remoto no lugar certo, deverá ser capaz de acessá-la através da web (você deve saber qual é o endereço dela - lembre-se de que este é um tutorial para usuários avançados).
Para puxar o repositório remoto, é necessário primeiro configurar a forma de acesso ao servidor remoto, que pode ser via SSH (caso a pessoa que vá acessar seja só você) ou via HTTP (caso você esteja compartilhando seu repositório com o mundo). Para adicionar um repositório remoto leitura-e-escrita via SSH, já ensinei ali em cima como fazer, o comando é exatamente igual, a única diferença é o comando para "puxar" o repositório remoto para o repositório local.
Para adicionar um repositório somente-leitura via HTTP, execute:
$ git remote add <nome_do_repositorio_http> http://<caminho>/<pasta_do_repositorio_remoto>
No meu caso, o comando seria:
$ git remote add acesso-http http://repo.pinheiro.eng.br/repositorio.git
Nenhum comentário:
Postar um comentário
Por favor identifique-se: primeiro nome, instituição, ou o que lhe convier.