Recentemente, iniciei um repositório git e esqueci de adicionar um .gitignore
arquivo. Após meu commit inicial, meu repositório tem muitos subdiretórios e muitos arquivos que deveriam ter sido ignorados. Existe uma maneira eficiente de adicionar um .gitignore
e, em seguida, enviar o repositório sem os arquivos que devem ser ignorados para uma ferramenta como GitLab ou GitHub?
Se você não se importar em excluir todos os arquivos ignorados no diretório de trabalho, o seguinte preparará todos os arquivos confirmados, mas ignorados para exclusão:
(assumindo GNU
find
e recente o suficientegit
paragit check-ignore
). Ele também excluirá qualquer outro arquivo ou diretório ignorado.Isso lista todos os arquivos e diretórios a partir do diretório atual, verifica se eles são ignorados (mesmo que estejam confirmados) e os exclui, independentemente de estarem confirmados, não rastreados etc.
Isso funciona com qualquer
.gitignore
arquivo na árvore (ou mesmo em qualquer outro lugar da suagit
configuração).Faça o acompanhamento confirmando as alterações e enviando-as por push; já que as mudanças são um novo commit, você não precisará forçar nada. Reescrever o histórico para remover todas as referências a arquivos supostamente ignorados é uma tarefa um pouco mais complicada.