Como usar o Git na hospedagem cPanel com o Git Version Control e como instalar o Git e criar um repositório num servidor Linux, com deploy automático.
O Git é o sistema de controle de versão mais usado do mundo: ele guarda o histórico de cada alteração do seu código, permite voltar atrás e facilita trabalhar em equipe com GitHub, GitLab ou Bitbucket. Hoje você não precisa compilar o Git na mão como se fazia em 2013: na hospedagem cPanel ele já vem pronto, e num servidor Linux se instala com um comando.
Git na hospedagem cPanel: Git Version Control
O cPanel tem uma tela própria para criar e clonar repositórios, sem precisar de terminal para o básico.
Como clonar um repositório do GitHub ou GitLab
- Abra o Git Version Control. No cPanel, seção Files (Arquivos), clique em Git Version Control e depois em Create.
- Deixe ligada a chave Clone a Repository e cole em Clone URL o endereço do repositório, por exemplo
https://github.com/sua-empresa/meusite.git. São aceitos endereçoshttps://,ssh://egit://. - Defina o Repository Path. Use uma pasta fora do
public_html, comorepositories/meusite. Assim a pasta interna do Git, que guarda todo o histórico, nunca fica acessível pelo navegador. - Dê um nome em Repository Name (só para exibição) e clique em Create.
Repositório público é clonado na hora. Para um repositório privado, a conta precisa de uma chave SSH cadastrada no GitHub ou GitLab (como Deploy key), e o Clone URL passa a ser o endereço SSH, no formato [email protected]:sua-empresa/meusite.git. O procedimento oficial do cPanel gera a chave e testa a conexão pelo terminal, então depende de o seu plano ter acesso SSH ou à tela Terminal. O guia oficial do cPanel mostra cada comando.
Como publicar o código no site com o arquivo .cpanel.yml
Como o repositório fica fora do public_html, você diz ao cPanel quais arquivos copiar para o site. Crie na raiz do repositório um arquivo .cpanel.yml, faça commit dele e troque minhaconta pelo seu usuário do cPanel:
---
deployment:
tasks:
- export DEPLOYPATH=/home/minhaconta/public_html/
- /bin/cp -R index.php css js imagens $DEPLOYPATH
- Atualize o repositório. No Git Version Control, clique em Manage no repositório, vá na aba Pull or Deploy e clique em Update from Remote para trazer os últimos commits.
- Publique. Clique em Deploy HEAD Commit. O cPanel roda as tarefas do
.cpanel.ymle copia os arquivos.
Para o deploy funcionar, o .cpanel.yml precisa estar commitado na raiz e o repositório não pode ter alterações locais pendentes.
git push para o repositório do cPanel (o endereço aparece em Manage, como Clone URL). Nesse modo, o deploy roda sozinho a cada push.Como instalar o Git num servidor Linux (VPS ou dedicado)
No AlmaLinux ou Rocky Linux 8 e 9:
sudo dnf install -y git
No Ubuntu 22.04 ou 24.04 e no Debian 12:
sudo apt update
sudo apt install -y git
Confira a instalação e configure o seu nome e e-mail, que aparecem em cada commit:
git --version
git config --global user.name "Seu Nome"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main
Como criar um repositório Git
mkdir -p ~/projetos/meusite
cd ~/projetos/meusite
git init
echo "# Meu site" > README.md
git add .
git commit -m "Primeiro commit"
Para ligar esse repositório a um GitHub ou GitLab e enviar o código:
git remote add origin [email protected]:sua-empresa/meusite.git
git push -u origin main
Se a ideia é que o próprio servidor receba os git push da equipe, crie um repositório "bare" (sem pasta de trabalho), que é o formato certo para servir de remoto:
git init --bare /srv/git/meusite.git
public_html, bloqueie com esta linha no .htaccess: RedirectMatch 404 /\.gitProblemas comuns
Git Version Control não aparece no cPanel
O recurso pode estar desativado no seu plano. Abra um chamado para confirmar.
Permission denied (publickey) ao clonar
O repositório é privado e a chave SSH da conta não foi cadastrada no GitHub ou GitLab, ou você usou um endereço https:// para um repositório privado. Use o endereço SSH e confira a deploy key.
O deploy não copia nada
Confira se o .cpanel.yml está na raiz do repositório, commitado, com indentação em espaços (não tabulação) e com o caminho do DEPLOYPATH terminando em /.