Vous avez donc validé vos modifications locales dans votre référentiel local. Ensuite, pour obtenir des modifications à distance dans votre référentiel local sans apporter de modifications à vos fichiers locaux, vous pouvez utiliser git fetch
. En fait, il git pull
s'agit d'une opération en deux étapes: une opération non destructive git fetch
suivie d'un git merge
. Voir Quelle est la différence entre «git pull» et «git fetch»?pour plus de discussion.
Exemple détaillé:
Supposons que votre référentiel ressemble à ceci (vous avez apporté des modifications test2
:
* ed0bcb2 - (HEAD, master) test2
* 4942854 - (origin/master, origin/HEAD) first
Et le origin
référentiel est comme ça (quelqu'un d'autre s'est engagé test1
):
* 5437ca5 - (HEAD, master) test1
* 4942854 - first
À ce stade, git se plaindra et vous demandera de tirer d'abord si vous essayez de pousser votre test2
dépôt vers un dépôt distant. Si vous voulez voir ce qu'est test1 sans modifier votre référentiel local, exécutez ceci:
$ git fetch
Votre référentiel local de résultats ressemblerait à ceci:
* ed0bcb2 - (HEAD, master) test2
| * 5437ca5 - (origin/master, origin/HEAD) test1
|/
* 4942854 - first
Vous avez maintenant les modifications distantes dans une autre branche et vous gardez vos fichiers locaux intacts.
Alors quelle est la prochaine étape? Vous pouvez faire un git merge
, qui aura le même effet que git pull
(lorsqu'il est combiné avec le précédent git fetch
), ou, comme je préférerais, faire un git rebase origin/master
pour appliquer votre changement par-dessus origin/master
, ce qui vous donne un historique plus propre.
git commit
des changements locaux avantgit pull
?