Digamos que eu tenha um arquivo no meu repositório git chamado foo
.
Suponha que ele tenha sido excluído com rm
(não git rm
). Em seguida, o status do git mostrará:
Changes not staged for commit:
deleted: foo
Como preparo essa exclusão de arquivo individual?
Se eu tentar:
git add foo
Diz:
'foo' did not match any files.
Respostas:
Desde o Git 2.0.0,
git add
também será feita a exclusão de arquivos.Docs do Git 2.0.0 - git-add
fonte
Use
git rm foo
para preparar o arquivo para exclusão. (Isso também excluirá o arquivo do sistema de arquivos, se não tiver sido excluído anteriormente. É claro que pode ser restaurado a partir do git, pois foi feito o check-in anteriormente.)Para preparar o arquivo para exclusão sem excluí-lo do sistema de arquivos, use
git rm --cached foo
fonte
--cache
sinalizador para remover o arquivo apenas do repositório e deixar o toque no sistema de arquivos.git status | grep 'deleted:' | cut -d':' -f2 | xargs -t -I {} git add -u "{}"
. Outras respostas parecem mostrar como preparar a remoção de arquivos corretamente (mas não como preparar os arquivos já excluídos). ps. oxargs
comando baseado funciona para mim no Ubuntu 12.04, no entanto, quando eu o faço manualmentegit add -u deleted_file.txt
, não funciona. Meu git é 1.7.9.5git rm
um arquivo para exclusão, mesmo se ele já tiver sido excluído do sistema de arquivos. E, como aponta o comentário do OP em outra resposta, eles queriam preparar um arquivo específico que já foi excluído.git rm
não prepara arquivos já removidos. Ele lança este erro:fatal: pathspec '~.SLDASM' did not match any files
. Aqui estão as telas com prova: i.imgur.com/cKNKGGe.png i.imgur.com/1p9JdWF.png . A primeira captura de tela mostra claramente que 2 arquivos são excluídos e não testados, a segunda captura de tela mostra que, quando eu digitogit rm "~$Box.SLDASM"
, gera esse erro.Mesmo que seja correto usar
git rm [FILE]
, como alternativa, você poderia fazergit add -u
.De acordo com a
git-add
documentação:Após o qual o índice será atualizado e os arquivos serão preparados temporariamente.
fonte
git add -A .
adicionará todas as alterações, eu queria especificamente criar um arquivo excluído.git add -u FolderWithDeletedFiles/
e ele fez o que eu quero, obrigadoPara preparar todos os arquivos excluídos manualmente, você pode usar:
Para adicionar um alias a este comando como
git rm-deleted
, execute:fonte
unknown option `deleted)
for /F %I in ('git ls-files --deleted') do git add -u %I
adicionar todos os arquivos excluídos prontos
obrigado verificar para se certificar
você deve estar pronto para ir
fonte
rm <file>
, mas simgit rm <file>
git version 2.15.2 (Apple Git-101.1)
.Você pode usar
git rm -r --cached -- "path/to/directory"
para preparar um diretório excluído.
fonte
Você pode usar este comando
fonte
para aqueles que usam git 2.x + no PowerShell:
fonte