Forcer le pull de l'extraction dans Git

Abdul Jabbar 6 février 2022
  1. Forcer l’extraction dans Git
  2. Conserver les commits locaux lors de l’extraction de Git
  3. Conserver les modifications locales lors de l’extraction dans Git
Forcer le pull de l'extraction dans Git

Git est le système de contrôle de version le plus populaire et le plus exigeant aujourd’hui. Les interfaces utilisateur de Git sont similaires à celles des autres systèmes de contrôle de version. Nous pouvons nous connecter, cloner un référentiel et effectuer des commits.

Cependant, Git présente quelques différences notables qui le rendent plus compliqué que d’autres systèmes.

Git est distribué. Chaque utilisateur a son référentiel au lieu que tous les référentiels soient stockés dans un emplacement central unique. Tout le monde doit se connecter à un autre référentiel pour l’utiliser. C’est un peu ennuyeux, mais cela signifie aussi que nous pouvons travailler sur les mêmes fichiers à différents endroits. Nous pouvons travailler sur le même projet à plusieurs endroits et les modifications sont synchronisées.

Nous sommes ici pour comprendre comment extraire avec force tous les changements dans la branche locale en cours de fonctionnement. En effet, il nous est peut-être arrivé d’avoir un ancien référentiel git qui n’a pas été synchronisé avec le référentiel distant avec les dernières modifications, et nous pouvons également avoir ou non les derniers commits distants, et maintenant nous voulons extraire tous les derniers modifications à distance, et nous ne nous soucions même pas des modifications locales dans le référentiel actuel, alors que faire pour ce scénario. La solution à ce problème est ci-dessous.

Forcer l’extraction dans Git

Sous le nom de commande pull, on peut penser que l’on peut utiliser ici la commande git pull, mais ce n’est pas la manière idéale d’utiliser la commande pull dans Git. Il existe donc deux façons de gérer cette situation, l’une consiste à supprimer le référentiel local actuel et à recréer un clone du même référentiel, mais l’inconvénient est que nous perdons nos fichiers non suivis qui existent déjà dans notre référentiel actuel.

Tout d’abord, nous allons exécuter fetch --all comme suit.

git fetch --all

Ici, la commande git fetch ​​téléchargera la dernière version à distance sans fusionner ni rebaser quoi que ce soit. Ensuite, après avoir exécuté fetch comme ci-dessus, si nous sommes sur la branche master, nous exécuterons la commande suivante pour réinitialiser :

git reset --hard origin/master

En exécutant la commande ci-dessus git reset, cela réinitialisera la branche principale à ce que nous venons de récupérer, ou si nous sommes sur une autre branche, nous utiliserons le nom de la branche comme suit.

git reset --hard origin/<branch_name>

L’option --hard ci-dessus changera tous les fichiers de notre arbre de travail pour qu’ils correspondent aux fichiers de la branche origin/master.

Conserver les commits locaux lors de l’extraction de Git

Si nous voulons conserver les commits locaux, nous devons créer une branche locale à partir de la branche sur laquelle nous nous trouvons avant d’exécuter la commande reset.

git checkout master
git branch new-backup-branch
git fetch --all
git reset --hard origin/master

Les commandes mentionnées ci-dessus sont uniquement destinées aux utilisateurs experts qui savent exactement ce qu’ils font. L’avertissement concerne les commandes ci-dessus : n’utilisez les commandes ci-dessus qu’avec précaution et assurez-vous de connaître la signification de leurs actions avant de les appliquer !

Conserver les modifications locales lors de l’extraction dans Git

Les modifications non validées et mises en scène seront perdues lorsque nous exécuterons la commande reset. Alors, quelle est la solution pour conserver ces modifications dans le référentiel local ?

Si nous voulons conserver ces modifications, nous utiliserons la commande stash avant d’exécuter la commande de réinitialisation, et après avoir effectué le pull, nous pouvons pop les modifications stockées au-dessus de nos modifications. Pour cela, nous exécuterons la commande suivante :

git stash

Et après avoir terminé la réinitialisation et l’extraction, si nous voulons réappliquer ces modifications stockées, de cette manière, nous obtiendrons à nouveau nos modifications locales dans le répertoire de travail. nous utiliserons la commande suivante pour récupérer nos modifications :

git stash pop
Auteur: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

Article connexe - Git Pull