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?

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


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


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>

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.

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.