Obrigado. E eu tinha acabado de escrever um alias bashpara fazer o acima. Surpreendente.
Zack de
12
O que o sinalizador -A faz?
Kim Prince de
1
@KimPrince - De acordo com kernel.org , "-A --todos como -u, mas compara <filepattern> com arquivos na árvore de trabalho, além do índice. Isso significa que encontrará novos arquivos, bem como conteúdo modificado de teste e remover arquivos que não estão mais na árvore de trabalho. "
j08691
3
@KimPrince git help addlhe dirá o que -Asignifica e lista todas as outras opções também.
Marcin Orlowski
1
Isso faz muito mais do que apenas remover arquivos excluídos. Ele adiciona todos os arquivos que foram alterados no diretório, portanto, essa não é uma resposta realmente satisfatória.
Alex
19
Você pode ver os arquivos excluídos, que ainda são 'rastreados' com:
git ls-files --deleted
Para excluir arquivos de um branch, você pode fazer algo assim:
git ls-files --deleted -z | xargs -0 git rm
De man git-rm:
Remova os arquivos do índice ou da árvore de trabalho e do índice. git-rm não removerá um arquivo apenas do seu diretório de trabalho. (Não há opção para remover um arquivo 13 apenas da árvore de trabalho e ainda mantê-lo no índice; use / bin / rm se quiser fazer isso.)
Finalmente, para confirmar a "remoção", faça algo como:
Isso funciona para o caso de uso listado, mas não apenas adiciona a exclusão dos arquivos. Ele adiciona todos os arquivos que foram alterados de alguma forma, portanto, geralmente não é uma boa maneira de remover todos os arquivos excluídos, a menos que essas sejam as únicas alterações feitas.
Respostas:
Acho que essa seria uma maneira mais simples de fazer o que você quer:
Então você apenas faria:
Como observado acima.
fonte
bash
para fazer o acima. Surpreendente.git help add
lhe dirá o que-A
significa e lista todas as outras opções também.Você pode ver os arquivos excluídos, que ainda são 'rastreados' com:
Para excluir arquivos de um branch, você pode fazer algo assim:
De
man git-rm
:Finalmente, para confirmar a "remoção", faça algo como:
fonte
git commit -m "removed some files"
Não sei se isso foi adicionado ao git desde as respostas anteriores, mas acabei de usar
para conseguir a mesma coisa.
fonte
Substitua deletefile.name pelo arquivo a ser removido. Para obter uma explicação detalhada e aprofundada, leia o bom artigo https://help.github.com/articles/remove-sensitive-data
fonte