No SVN, remover algo do sistema de arquivos diretamente (em vez de usar o svn) criou muitas dores de cabeça.
Eu não achei isso um problema ao usar git
, mas percebo que o git tem sua própria rm
implementação ( git rm
).
Qual é a diferença entre rm
e git rm
?
git reset --hard
e, em seguida, fazer uma verificação geral do mestre para sair do estado principal desanexado porque sabia que não havia nenhuma alteração não confirmada. Se você não confirmou suas alterações, convém fazer um stash git, mas eu sou relativamente novo no git, portanto não conheço o comando exato. Se você veio aqui em ou após 2014, espero que esta resposta tenha sido útil para você.rm
(em vez degit rm
) e excluí muitos arquivos usando-o, e agora não querogit
rastreá-los. Existe uma maneira de reverter as mudanças? Querogit
pisarrm
como removido porque não o useigit rm
em primeiro lugar.A remoção de arquivos usando
rm
não é um problema em si, mas se você quiser confirmar que o arquivo foi removido, será necessário fazê-lo degit rm
qualquer maneira, para que você possa fazê-lo dessa maneira imediatamente.Além disso, dependendo do seu shell,
git rm
depois de excluir o arquivo, você não terá o preenchimento de guias, portanto, será necessário especificar o caminho, enquanto segit rm
o arquivo ainda existir, o preenchimento de guias funcionará normalmente.fonte
git rm
removerá o arquivo do índice e do diretório de trabalho (somente índice se você tiver usado--cached
) para que a exclusão seja preparada para a próxima confirmação.fonte
No entanto, se você acabar usando rm em vez de git rm. Você pode pular o git add e confirmar diretamente as alterações usando:
git commit -a
fonte
Veja como você pode excluir um arquivo usando
rm -f
e removê-lo do seu índice comgit rm
No entanto, você pode fazer isso de uma só vez com apenas
git rm
fonte
Ao usar o git rm, a remoção fará parte do seu próximo commit. Então, se você quiser pressionar a alteração, use git rm
fonte
Adicionando à resposta de Andy, há utilidade adicional para
git rm
:Segurança : Ao fazer isso em
git rm
vez derm
, o Git bloqueará a remoção se houver uma discrepância entre aHEAD
versão de um arquivo e o índice de preparação ou a versão da árvore de trabalho. Este bloco é um mecanismo de segurança para impedir a remoção de alterações em andamento.Salvaguardando :
git rm --dry-run
. Essa opção é uma salvaguarda que executará ogit rm
comando, mas na verdade não excluirá os arquivos. Em vez disso, ele exibirá quais arquivos ele removeria.fonte