Comment extraire les modifications d'une branche à une autre dans Git

How Pull Changes From One Branch Another Git



Un dépôt git contient une ou plusieurs branches pour gérer efficacement le code. Parfois, les utilisateurs de git doivent travailler avec plusieurs branches simultanément et doivent passer d'une branche à une autre avec les modifications apportées dans la branche précédente à la branche actuelle avant la validation. Cette tâche peut être effectuée en utilisant plusieurs manières dans git. La commande stash peut être utilisée à partir du terminal et les commandes de fusion du bureau GitHub pour extraire les modifications d'une branche à une autre dans ce didacticiel.

Conditions préalables

1. Installez GitHub Desktop
GitHub Desktop aide l'utilisateur git à effectuer graphiquement les tâches liées à git. Vous pouvez facilement télécharger le dernier programme d'installation de cette application pour Ubuntu depuis github.com. Vous devez installer et configurer cette application après le téléchargement pour l'utiliser. Vous pouvez également consulter le didacticiel d'installation de GitHub Desktop sur Ubuntu pour connaître correctement le processus d'installation.







2. Créez un compte GitHub
Vous devrez créer un compte GitHub pour vérifier l'apparence du référentiel distant après la publication de la modification du référentiel local.



3. Créer un référentiel local
Vous devez créer un référentiel local pour vérifier les commandes utilisées dans ce tutoriel.



Utilisation de la commande stash

Le référentiel local nommé PHP2 a été utilisé dans ce didacticiel pour montrer comment extraire les modifications d'une branche vers une autre branche du référentiel. Créer un fichier nommé index.html dans le référentiel. Ouvrez le terminal et accédez au dossier du référentiel. Exécutez les commandes suivantes pour vérifier la liste des branches, basculer vers la branche principale et afficher l'état de la branche.





$ git branche
$ git checkout maître
$ git statut

La sortie suivante apparaîtra après l'exécution de la commande ci-dessus. La sortie montre que le référentiel contient deux branches, et le principal branche était active au départ. Après être passé au Maître branche, la sortie de l'état montre que la branche actuelle est active et l'index.html le fichier n'est pas suivi.



Exécutez les commandes suivantes pour suivre le fichier non suivi et vérifiez à nouveau l'état du référentiel git.

$ git add index.html
$ git statut

La sortie suivante apparaîtra après l'exécution des commandes ci-dessus. La sortie de l'état montre que l'index.html fichier est ajouté au référentiel mais doit être validé.

Exécutez les commandes suivantes et vérifiez à nouveau l'état du référentiel git. La commande `git stash` fonctionne comme la commande `git commit`. Le répertoire de travail du référentiel sera nettoyé après l'exécution de cette commande.

$ git cache
$ git statut

La sortie suivante apparaîtra en exécutant les commandes ci-dessus.

Après avoir exécuté la commande stash pour une branche, si l'utilisateur git souhaite transférer les modifications de la branche vers une autre branche, cela peut être fait facilement en utilisant la commande `git stash pop` qui fonctionne comme la commande `git merge`. Exécutez les commandes suivantes pour basculer dans le principal branche et extrayez les modifications de la Maître branche à la principale branche.

$ git checkout principal
$ git stash pop

La sortie suivante apparaîtra après l'exécution de la commande ci-dessus qui montre que la branche actuelle est principale et le index.html fichier est ajouté dans cette branche.

Exécutez la commande suivante pour valider la tâche précédente avec le message de validation et vérifiez à nouveau l'état.

$ git commit -m 'fichier d'index ajouté'
$ git statut

La sortie suivante apparaîtra après l'exécution des commandes ci-dessus. La sortie de l'état montre que l'arbre de travail est propre maintenant après la validation.

Si les modifications du référentiel local sont transmises au référentiel distant et que le référentiel distant est ouvert à partir de github.com, le référentiel ressemblera à l'image suivante.

Utilisation de la commande de fusion

Cette partie de ce didacticiel montre une autre façon de transférer les modifications d'une branche à une autre. Le référentiel local nommé lire-fichier a utilisé ici. Créez un fichier nommé read.php dans l'emplacement du référentiel. Exécutez les commandes suivantes pour basculer dans la branche master, ajoutez le fichier read.php et validez la tâche. La commande branch affichera la liste des branches. La commande checkout fera passer la branche en maître. La commande status affichera l'état actuel de la branche. La commande add ajoutera le fichier non suivi dans le référentiel. La commande commit confirmera la tâche.

$ git branche
$ git checkout maître
$ git statut
$ git ajouter read.php
$ git commit -m 'Le script de lecture est ajouté'

La sortie suivante apparaîtra après l'exécution des commandes ci-dessus. Le fichier read.php a été ajouté à la branche master du référentiel, et la tâche a également été validée.

Après avoir terminé la tâche ci-dessus, si les modifications apportées dans le Maître succursale nécessite un transfert dans le principale branche, alors la fusion La commande peut être utilisée pour effectuer cette tâche. La commande de fusion peut être utilisée depuis le terminal ou en utilisant l'application GitHub Desktop. La manière d'utiliser GitHub Desktop pour fusionner des branches a été montrée dans cette partie du didacticiel. Ouvrez le référentiel local dans GitHub Desktop. Ouvrez la boîte de dialogue de la liste des branches en cliquant sur la liste des succursales du Vue menu et sélectionnez le principale branche comme branche active. Maintenant, cliquez sur le Fusionner dans la branche actuelle… du Branche menu. Sélectionnez le Maître branche de la boîte de dialogue et cliquez sur le Fusionner le maître dans le principal bouton pour tirer les changements de la Maître branche dans le principal branche. Vous pouvez supprimer le Maître branche après avoir terminé l'opération de fusion si la branche ne nécessite pas le référentiel.

Conclusion

Deux manières différentes d'extraire les modifications d'une branche à une autre ont été présentées dans ce didacticiel à l'aide de deux référentiels locaux de démonstration. Les planque et aller les commandes de git ont été utilisées ici pour effectuer la tâche. Le bureau GitHub a été utilisé dans ce didacticiel pour montrer la manière de fusionner des branches graphiquement.