Forçar a substituição do arquivo local com o que está no repositório de origem?

224

Quero obter o arquivo mais recente que está no repositório e substituir o que tenho localmente. Como posso fazer isso com o cliente git?

Blankman
fonte

Respostas:

443

Se você deseja substituir apenas um arquivo:

git fetch
git checkout origin/master <filepath>

Se você deseja substituir todos os arquivos alterados:

git fetch
git reset --hard origin/master

(Isso pressupõe que você esteja trabalhando masterlocalmente e deseje as alterações na origem master- se estiver em uma ramificação, substitua-a).

Âmbar
fonte
Isso fez o oposto. Ele substituiu o repositório com meus arquivos locais erroneamente.
C_Rod
git fetch git reset --hard origin/masterou/<branch name>
adrian filipescu
Isso é ótimo ... Exatamente o que eu estava procurando. Obrigado
Thiago Passos
Não sei o que @C_Rod fez, mas isso não pode possivelmente afetar o repositório
Brad Mace
26

Versão mais simples, supondo que você esteja trabalhando no mesmo ramo em que o arquivo deseja:

git checkout path/to/file.

Faço isso com tanta frequência que tenho um alias definido gc='git checkout'.

JM Janzen
fonte
4
Simples, elegante e faz o trabalho. Lembre-se de 'git fetch' antes.
Almir Campos
6
git checkout path/to/filetrabalhou para mim. Além disso, achei este diagrama muito útil para entender conceitualmente o que git checkoutestá fazendo. link
Cale Sweeney
9

Isso funcionou para mim:

git reset HEAD <filename>
arn-arn
fonte
Vi várias soluções diferentes, mas essa é a mais eficaz, obrigado
Calvin Zhou
3

A sincronização completa tem poucas tarefas:

  • revertendo mudanças
  • removendo novos arquivos
  • obtenha as últimas informações do repositório remoto

git reset HEAD --hard

git clean -f

mestre de origem do git pull

Ou então, o que eu prefiro é que eu possa criar uma nova ramificação com as últimas do controle remoto usando:

git checkout origin/master -b <new branch name>

origin é minha referência de repositório remoto e master é meu nome de filial considerado. Estes podem ser diferentes dos seus.

Chand Priyankara
fonte