Respostas:
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).
git fetch git reset --hard origin/masterou/<branch name>
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'.
git checkout path/to/filetrabalhou para mim. Além disso, achei este diagrama muito útil para entender conceitualmente o que git checkoutestá fazendo. link
Isso funcionou para mim:
git reset HEAD <filename>
A sincronização completa tem poucas tarefas:
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.