git: como posso obter a última versão do meu código?

estou a usar o Git 1.7.4.1. Quero obter a versão mais recente do meu código do repositório, mas estou recebendo erros ...

$ git pull
….
M   selenium/ant/build.properties
….
M   selenium/scripts/linux/get_latest_updates.sh
M   selenium/scripts/windows/start-selenium.bat
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as appropriate to mark resolution, or use 'git commit -a'.
Apaguei as cópias locais dos ficheiros de que a ferramenta se queixa, mas ainda recebo os erros. Como posso verificar a versão mais recente do repo remoto? - Dave

 161
git
Author: Dave, 0000-00-00

3 answers

Se não se importar com quaisquer alterações locais (incluindo ficheiros não rastreados ou gerados ou subrepositórios que por acaso estão aqui) e só quiser uma cópia do repo:

git reset --hard HEAD
git clean -xffd
git pull
Mais uma vez, isto vai destruir todas as alterações que fez localmente, por isso use com cuidado. Pense em rm -Rf ao fazer isto.
 221
Author: Alex Curtis, 2017-05-18 21:47:07

Caso 1: não se importam com as mudanças locais

  • Solução 1: Obter o código mais recente e reiniciar o código

    git fetch origin
    git reset --hard origin/[tag/branch/commit-id usually: master]
    
  • Solução 2: apagar a pasta e clonar de novo: D

    rm -rf [project_folder]
    git clone [remote_repo]
    

Caso 2: Cuidado com as alterações locais

  • Solução 1: não há conflitos com a versão nova-online

    git fetch origin
    git status
    

    Vai relatar algo como:

    Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
    

    Então pegue o versão mais recente

    git pull
    
  • Solução 2: conflitos com a versão nova-online

    git fetch origin
    git status
    

    Vai relatar algo como:

    error: Your local changes to the following files would be overwritten by merge:
        file_name
    Please, commit your changes or stash them before you can merge.
    Aborting
    

    Commit your local changes

    git add .
    git commit -m ‘Commit msg’
    

    Tente obter as mudanças (irá falhar)

    git pull
    

    Vai relatar algo como:

    Pull is not possible because you have unmerged files.
    Please, fix them up in the work tree, and then use 'git add/rm <file>'
    as appropriate to mark resolution, or use 'git commit -a'.
    

    Abra o ficheiro de conflito e corrija o conflito. Então:

    git add .
    git commit -m ‘Fix conflicts’
    git pull
    

    Vai relatar algo como:

    Already up-to-date.
    

Mais informações: como é que eu uso o ' git reset -- cabeça dura ' para reverter a um commit anterior?

 174
Author: tvl, 2017-05-23 12:18:16

Eu suspeito que o que aconteceu pode ser que você tenha apagado os arquivos que você modificou (porque você não se importou com essas alterações) e agora o git está tomando a exclusão para ser uma mudança.

Aqui está uma abordagem que move as suas alterações para fora da sua cópia de trabalho e para o "stash" (recuperável caso se verifique que alguma vez precisa delas de novo), para que possa então puxar as alterações mais recentes para baixo a partir do rio.

git stash  
git pull
Se alguma vez quiser recuperar os seus ficheiros (conflitos potenciais com alterações a montante e tudo), execute um git stash apply para colocar essas alterações no topo do seu código. Dessa forma, você tem uma abordagem" desfazer".
 17
Author: Kzqai, 2013-12-02 15:36:11