226 votes

git: Comment puis-je obtenir la dernière version de mon code?

J'utilise Git 1.7.4.1. Je veux obtenir la dernière version de mon code à partir de la logithèque, mais j'ai des erreurs ...

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

J'ai supprimé les copies locales des fichiers, l'outil est de se plaindre, mais j'ai toujours les erreurs. Comment dois-je consulter la dernière version à partir de la télécommande repo? - Dave

288voto

Alex Curtis Points 1594

Si vous n'avez pas de soins sur les changements et vous voulez juste une copie de la mise en pension:

git reset --hard HEAD
git clean -f
git pull

Encore une fois, ce sera nuke toutes les modifications que vous avez apportées localement afin de les utiliser avec précaution.

273voto

Tolis Points 46

Cas 1: Ne vous souciez pas des modifications locales

  • Solution 1: Obtenir la dernière version du code et de réinitialiser le code

    git fetch origin
    git reset --hard origin/[tag/branch/commit-id usually: master]
    
  • Solution 2: Supprimer le dossier et le clone de nouveau :D

    rm -rf [project_folder]
    git clone [remote_repo]
    

Cas 2: des Soins sur les changements

  • Solution 1: pas de conflits avec la nouvelle version en ligne

    git fetch origin
    git status
    

    fera rapport à quelque chose comme:

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

    Puis obtenir la dernière version

    git pull
    
  • Solution 2: les conflits avec les nouveaux-version en ligne

    git fetch origin
    git status
    

    fera rapport à quelque chose comme:

    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
    

    Validez vos modifications locales

    git add .
    git commit -m ‘Commit msg'
    

    Essayez d'obtenir les changements (échoue)

    git pull
    

    fera rapport à quelque chose comme:

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

    Ouvrez le dossier du conflit et résoudre le conflit. Alors:

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

    fera rapport à quelque chose comme:

    Already up-to-date.
    

Plus d'infos: Comment faire j'ai utilisé "git reset --hard HEAD", pour revenir à une précédente livraison?

20voto

Kzqai Points 7484

Je soupçonne que ce qui s'est passé peut-être que vous avez supprimé les fichiers que vous avez modifié (parce que vous ne se soucient pas de ces changements) et maintenant git est de prendre la suppression d'un changement.

Ici, c'est une approche qui se déplace à vos changements de votre copie de travail et dans la "cachette" (récupérable, faut-il réellement s'avérer que vous avez besoin de nouveau), de sorte que vous pouvez alors tirer les dernières modifications en bas de l'amont.

git stash  
git pull

Si jamais vous voulez récupérer vos fichiers (les conflits potentiels avec les changements en amont et tout et tout), exécuter un git stash apply pour tenir ces changements sur le dessus de votre code. De cette façon, vous avez une fonction "annuler".

7voto

Amokrane Chentir Points 11441

Vous avez pour fusionner vos fichiers. Faire un git status voir quels sont les fichiers qui doivent être fusionnés (signifie que vous devez résoudre les conflits en premier). Une fois cela fait, n' git add file_merged et de faire de votre pull de nouveau.

1voto

Dan Ray Points 14852

Je comprends que vous voulez dans la corbeille de vos changements locaux et tirer vers le bas ce qui est sur votre télécommande?

Si tout le reste échoue, et si vous êtes (très compréhensible) peur de "reset", la chose la plus simple est juste de clone origine dans un nouveau répertoire et de la corbeille de votre ancien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X