Git - excluiu alguns arquivos localmente, como faço para obtê-los de um repositório remoto

109

Excluí alguns arquivos do meu PC, como faço para baixá-los novamente?

Pull diz: "Já atualizado".

Dick Colt
fonte
1
Você não precisa "baixá-los novamente", porque todo o histórico do repositório existe localmente quando você está usando o Git.
cdhowie de
você sabe como obtê-los do local?
Charlie Parker

Respostas:

162

Como o git é um VCS distribuído, seu repositório local contém todas as informações. Nenhum download é necessário; você só precisa extrair o conteúdo que deseja do repositório ao seu alcance.

Se você não confirmou a exclusão, apenas verifique os arquivos de seu commit atual:

git checkout HEAD <path>

Se você fez o commit da exclusão, você precisa fazer o check-out dos arquivos de um commit que os contém. Presumivelmente, seria o commit anterior:

git checkout HEAD^ <path>

mas se for ncommit atrás, use HEAD~n, ou simplesmente ative gitk, encontre o SHA1 do commit apropriado e cole-o.

Cascabel
fonte
2
apenas como um comentário lateral, isso também funciona para um diretório completo, não é especial ou específico para um único arquivo (pelo menos funcionou quando tentei). Thnx btw.
Charlie Parker
5
NB o <path>é obrigatório, mesmo que seja apenas um .ponto para dir atual. Mas o "branch" ( HEADno exemplo acima) é opcional. Como acontece com tantos comandos do Git, nem a saída nem a ajuda são úteis.
MarkHu
39

git checkout filename

git reset --hard pode fazer o truque também

Šimon Tóth
fonte
9
avisando que em usar o git reset --hardmétodo, pois isso irá reverter a árvore inteira de volta para onde você colocou HEAD / HEAD ^ / HEAD ~ n e irá fazer isso sem preconceito e potencialmente perder muitos commits ...
g19fanatic
git checkout filename foi a resposta para mim :)
Ruub
git checkout filename cria apenas um arquivo vazio
mrek
colocado na pasta desejada e git checkount .funcionou como um encanto!
hzitoun
21

Se você excluiu vários arquivos localmente, mas não confirmou, você pode forçar a verificação

$ git checkout -f HEAD
Amit
fonte
Como podemos ver na saída "Já atualizado", a pessoa que fez esta pergunta não cometeu nada recentemente. Você deveria especificar que git checkout -f HEAD é PERIGOSO? Pois pode desfazer mudanças locais que não foram confirmadas (restaurar arquivos anteriores sendo o resultado positivo, perdendo mudanças em arquivos editados o negativo).
Lionel Trebuchon
15

Se você excluiu vários arquivos localmente e não confirmou as alterações, vá para o caminho do repositório local, abra o shell git e digite.

$ git checkout HEAD .

Todos os arquivos excluídos antes do último commit serão recuperados.

Adicionando "." irá recuperar todos os arquivos deletados no repositório atual, para seus respectivos caminhos.

Para mais detalhes confira a documentação .

rzskhr
fonte
2

Você precisa verificar uma versão anterior antes de excluir os arquivos. Tente git checkout HEAD^verificar a última revisão.

meagar
fonte
0

Além disso, adiciono a execução das seguintes etapas para que o repositório git seja vinculado corretamente ao IDE:

 $ git reset <commit #>

 $ git checkout <file/path>

Eu espero que isso tenha sido útil!!

Mona Wade
fonte