Eu tenho um repositório git hospedado no Github. Depois de cometer muitos arquivos, estou percebendo que eu preciso para criar .gitignore
e excluir .exe
, .obj
arquivos.
No entanto, ele removerá automaticamente esses arquivos confirmados do repositório? Existe alguma maneira de forçar isso?
Respostas:
Não, você não pode forçar a remoção de um arquivo que já foi confirmado no repositório porque ele foi adicionado ao
.gitignore
Você precisa
git rm --cached
remover os arquivos que não deseja no repositório. (--cached porque você provavelmente deseja manter a cópia local, mas remover do repositório.) Portanto, se você deseja remover todos os exe's do repositório, faça(Observe que o asterisco * é citado no shell - isso permite que o git, e não o shell, expanda os nomes dos caminhos dos arquivos e subdiretórios)
fonte
git rm /\*.exe
isso, todos os exe serão excluídos em seu repo #git
.git pull
verão seus arquivos excluídos.Não. Mesmo com um existente,
.gitignore
você pode preparar arquivos "ignorados" com o-f
sinalizador (force). Se os arquivos já tiverem sido confirmados, eles não serão removidos automaticamente.fonte
Se você ainda não enviou as alterações:
fonte
Eu tive que remover .idea e pastas de destino e depois de ler todos os comentários, isso funcionou para mim:
e depois pressione para dominar
fonte
.idea
foi o meu problema, acho que também foi seu:)
Não.
A 'melhor' receita para fazer isso é usar
git filter-branch
como está escrito aqui:A página de manual do git-filter-branch contém exemplos abrangentes.
Nota Você reescreverá o histórico. Se você publicou alguma revisão contendo os arquivos adicionados acidentalmente, isso pode criar problemas para os usuários dessas ramificações públicas. Informe-os ou talvez pense sobre o quanto você precisa remover os arquivos.
Nota Na presença de tags, sempre use a
--tag-name-filter cat
opção paragit filter-branch
. Isso nunca dói e vai lhe poupar a dor de cabeça quando você perceber mais tarde que precisavafonte
--all
para reescrever todas as ramificações (locais) de uma só vezMesmo depois de excluir o (s) arquivo (s) e depois confirmar, você ainda terá esses arquivos no histórico. Para excluí-los, considere usar o BFG Repo-Cleaner . É uma alternativa ao git-filter-branch.
fonte