Conecte sua própria conta do GitHub a um site e manteremos os dois em sincronia em ambas as direções. É gratuito, fica desativado até você ligá-lo e só realizamos commits em um repositório de uma conta de sua propriedade — nunca em uma das nossas.
O que é sincronizado
Tudo o que você alterar nos arquivos do seu site se torna um commit em seu repositório, não importa como você alterou: pelo gerenciador de arquivos, SFTP, editor de temas do WordPress ou uma sessão SSH. Você não precisa nos avisar — comparamos seu site com o último commit dele e enviamos a diferença.
No sentido inverso, um push para a sua ramificação conectada é aplicado diretamente no site.
O que nunca enviamos via commit
Seu wp-config.php é excluído, deliberada e permanentemente. Ele contém a senha do seu banco de dados e seus salts de autenticação, e esses dados não pertencem a um repositório — nem mesmo a um privado, pois o git mantém o histórico para sempre.
Também estão excluídos: arquivos .env, chaves e certificados, sua pasta de uploads, caches e node_modules. Um repositório é a fonte do seu site, não um backup. Os arquivos de mídia pertencem aos seus backups, onde já são mantidos, e colocá-los aqui tornaria cada push lento e cada alteração ilegível.
O que acontece se ambos os lados mudarem
Esta é a pergunta que vale a pena ler. Digamos que você edite um arquivo no gerenciador de arquivos e, enquanto isso, um colega envie um push com uma alteração para o mesmo repositório.
Nós paramos. Não fazemos merge e não sobrescrevemos o trabalho de ninguém. A aba Deploy do site exibirá "Seu repositório tem alterações que ainda não vimos", informará o commit que você precisa analisar e aguardará por você. Nada é perdido de nenhum dos lados enquanto o processo aguarda — sua edição continua no site e o commit do colega continua no repositório.
Você então escolhe:
- Manter os arquivos deste site — colocamos a sua versão sobre a deles. Os commits deles permanecem no histórico; nada é apagado.
- Usar o repositório, descartar as alterações do site — a versão do repositório é aplicada ao site, e as alterações que você fez aqui são descartadas. Esta ação é destrutiva, por isso exige um clique deliberado e nunca é algo que fazemos em seu nome.
Não há opção de "merge automático", propositalmente. Um merge realizado por nós produziria um arquivo que nenhum de vocês escreveu, em um site em produção, sem que nenhum dos dois o visse primeiro.
Por que a sincronização pode parar
- Você não conectou sua própria conta do GitHub. O botão permanece desativado até que você o faça.
- O sistema está aguardando você. Veja acima — uma retenção não se resolve sozinha.
- Sua conta tem pendências. A sincronização é pausada e retomada automaticamente assim que o faturamento for regularizado. Nada é perdido.
A aba Deploy mostra as últimas sincronizações, incluindo aquelas em que nada mudou. Se essa lista estiver vazia e a sincronização estiver ativada, é muito provável que a conta conectada não tenha permissão de gravação no repositório — verifique o acesso dela e reconecte.
Escolhendo o que sincronizar
Por padrão, o site inteiro é sincronizado. Em um site WordPress, isso geralmente não é o que você deseja: significa sincronizar cada arquivo do núcleo do WordPress, que você não escreveu e não editará. Defina "Sincronizar apenas esta pasta" para o seu tema — por exemplo, wp-content/themes/my-theme — e o restante não será tocado.