Vous devez comprendre qu'un référentiel Git n'est pas seulement une arborescence de répertoires et de fichiers, mais stocke également un historique de ces arborescences - qui peuvent contenir des branches et des fusions.
Lors de la récupération à partir d'un référentiel, vous y copiez tout ou partie des branches dans votre référentiel. Celles-ci sont ensuite dans votre référentiel en tant que "branches de suivi à distance", par exemple des branches nommées comme remotes/origin/master
ou telles.
La récupération de nouvelles validations à partir du référentiel distant ne changera rien à votre copie de travail locale.
Votre copie de travail a normalement un commit extrait, appelé HEAD
. Ce commit est généralement la pointe de l'une de vos succursales locales.
Je pense que vous souhaitez mettre à jour votre branche locale (ou peut-être toutes les branches locales?) Vers la branche distante correspondante, puis consultez la dernière branche.
Pour éviter tout conflit avec votre copie de travail (qui pourrait avoir des modifications locales), vous devez d'abord nettoyer tout ce qui n'est pas versionné (en utilisant git clean
). Ensuite, vous extrayez la branche locale correspondant à la branche distante que vous souhaitez mettre à jour et utilisez git reset
pour la basculer vers la branche distante récupérée. ( git pull
incorporera toutes les mises à jour de la branche distante dans votre branche locale, ce qui pourrait faire de même, ou créera une validation de fusion si vous avez des validations locales.)
(Mais alors vous perdrez vraiment toutes les modifications locales - à la fois dans la copie de travail et les validations locales. Assurez-vous que vous le voulez vraiment - sinon, utilisez mieux une nouvelle branche, cela enregistre vos validations locales. Et utilisez git stash
pour enregistrer les modifications qui ne sont pas encore validées .)
Modifier:
si vous n'avez qu'une seule branche locale et que vous suivez une branche distante, tout ce que vous avez à faire est de
git pull
depuis l'intérieur du répertoire de travail.
Cela récupérera la version actuelle de toutes les branches distantes suivies et mettra à jour la branche actuelle (et le répertoire de travail) vers la version actuelle de la branche distante qu'elle suit.