Corrigir Arquivos Ausentes Entre Local e Remoto no Git: Um Guia Passo a Passo

Você está vendo arquivos em sua branch local, mas não no repositório remoto? Você pode estar enfrentando um problema de .gitignore ou outros problemas de rastreamento. Quando certos caminhos estão listados no .gitignore
, o Git não rastreará esses arquivos, fazendo com que eles fiquem ausentes quando você fizer push para o remoto.
Principais pontos
- O
.gitignore
pode ocultar arquivos vitais, impedindo que sejam enviados. - Use regras
!
no.gitignore
para permitir arquivos ou pastas específicos.
Por que os arquivos desaparecem no Git
O .gitignore
pode conter regras que dizem ao Git para ignorar diretórios ou padrões de arquivos. Se esses diretórios ou arquivos são importantes—como imagens, logs ou configurações—eles não serão commitados ou enviados, causando arquivos ausentes na branch remota.
Problema comum do .gitignore
Por exemplo:
// dentro do arquivo .gitignore
public/files
Isso ignora tudo dentro de public/files/
. Qualquer arquivo ou pasta lá não será commitado, levando a problemas de arquivos ausentes pelo .gitignore.
Como corrigir arquivos ausentes no git
Passo 1: Verificar se um arquivo está sendo ignorado
Se um arquivo está local mas ausente remotamente, verifique se o .gitignore
está ignorando-o:
git check-ignore -v public/files/data.json
Se o comando fizer referência ao .gitignore
, o arquivo está sendo ignorado.
Passo 2: Ajustar as regras do .gitignore
Você pode permitir pastas ou arquivos específicos:
public/files
!public/files/documents/
!public/files/logs/
public/files
ignora a pasta inteira.!public/files/documents/
e!public/files/logs/
permitem rastrear essas subpastas.
Passo 3: Limpar arquivos ignorados em cache
Se os arquivos foram rastreados anteriormente ou estão no índice:
git rm -r --cached public/files
Isso os remove do índice do Git (não da sua máquina local) para que novas regras possam ser aplicadas.
Passo 4: Readicionar os arquivos permitidos
Após limpar o cache:
git add public/files/documents/ public/files/logs/
git commit -m ""Re-adding important files""
git push origin main
Passo 5: Verificar arquivos no repositório remoto
Use:
git ls-tree -r origin/main --name-only | grep ""public/files/""
Se eles aparecerem, o problema está resolvido.
Conclusão
Ao enfrentar arquivos ausentes entre local e remoto no Git, especialmente devido a regras do .gitignore
, atualizar seus padrões de ignorar e readicionar os arquivos necessários resolve o problema. Siga esses passos para garantir que ativos cruciais não sejam silenciosamente ignorados.
Perguntas Frequentes
Não. 'git rm -r --cached' os remove do índice do Git, mas não da sua máquina local.
Use 'git check-ignore -v [caminho]'. Ele mostrará qual regra está ignorando o arquivo.
Sim. Use um padrão '!nome-do-arquivo' no .gitignore. Se necessário, você pode forçar a adição de arquivos com 'git add -f'.