Back

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

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'.

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers