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".


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.


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


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

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 .


2

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


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!!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.