Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Visual Studio 2019 | Visual Studio 2022
Lorsqu’il existe plusieurs contributeurs à un projet, conservez votre dépôt Git local mis à jour en téléchargeant et en intégrant le travail que d’autres utilisateurs ont chargés dans le dépôt distant du projet. Ces commandes Git mettent à jour votre dépôt local :
- Git récupère les nouvelles validations que d’autres utilisateurs ont chargées dans le dépôt distant. Les branches de suivi à distance dans le cache de référentiel local sont mises à jour : les branches locales restent inchangées.
- La fusion Git intègre des validations d’une ou plusieurs branches sources dans une branche cible.
- Git rebase intègre les validations d’une branche source dans une branche cible, mais utilise une stratégie différente de la fusion Git.
- Git pull effectue une extraction, puis une fusion ou une rebase pour intégrer des validations extraites dans votre branche locale actuelle.
Visual Studio utilise un sous-ensemble de ces commandes Git lorsque vous synchronisez votre dépôt local avec un dépôt distant.
Pour obtenir une vue d’ensemble du flux de travail Git, consultez le didacticiel Git Azure Repos.
Cet article fournit des procédures pour les tâches suivantes :
- Télécharger les modifications avec extraction
- Mettre à jour des branches avec fusion ou rebase
- Télécharger les modifications et mettre à jour les branches avec extraction
Télécharger les modifications avec extraction
Git récupère les validations de branche distante et les objets de fichiers référencés qui n’existent pas dans votre dépôt local et met à jour les branches de suivi à distance dans le cache de référentiel local. Les branches de suivi à distance sont des copies en lecture seule mises en cache localement des branches distantes et ne sont pas vos branches locales. Git fetch ne met pas à jour vos branches locales. Par exemple, si un dépôt distant désigné par origin une branche a une bugfix3 branche, Git fetch met à jour la branche de suivi à distance nommée origin/bugfix3 et non votre branche locale bugfix3 . Vous pouvez utiliser des branches de suivi à distance pour :
- Comparez une branche de suivi à distance avec une branche locale pour examiner les modifications extraites.
- Fusionnez une branche de suivi à distance dans une branche locale.
- Créez une branche locale à partir d’une branche de suivi à distance.
- Visual Studio 2022
- Visual Studio 2019 - Menu Git
- Visual Studio 2019 - Team Explorer
- Ligne de commande Git
Visual Studio 2022 offre une expérience de contrôle de version Git à l’aide du menu Git , des modifications Git et des menus contextuels dans l’Explorateur de solutions. Visual Studio 2019 version 16.8 offre également l’interface utilisateur Git team Explorer . Pour plus d’informations, consultez l’onglet Visual Studio 2019 - Team Explorer .
Dans la fenêtre Modifications Git , choisissez Fetch. Sélectionnez ensuite sortant/entrant pour ouvrir la fenêtre Dépôt Git .
Vous pouvez également choisir Fetch dans le menu Git.
Dans la fenêtre Référentiel Git , les validations extraites s’affichent dans la section Entrante . Sélectionnez une validation extraite pour afficher la liste des fichiers modifiés dans cette validation. Sélectionnez un fichier modifié pour afficher un affichage différent du contenu modifié.
Conseil / Astuce
Fetch ne supprime pas les branches de suivi à distance dans votre cache de dépôt local qui n’ont plus d’équivalent distant. Pour configurer Visual Studio afin de nettoyer les branches de suivi à distance obsolètes lors d’une extraction :
- Sélectionnez options Outils>Options>Contrôle de> code sourceParamètres globaux Git.
- Définissez les branches distantes Prune pendant l’option d’extraction sur
True.
Après une extraction Git, vous pouvez comparer une branche locale à sa branche de suivi à distance correspondante pour voir ce qui a changé sur la branche distante. Si vous décidez de mettre à jour votre branche locale actuelle avec des modifications extraites, vous pouvez effectuer une fusion Git ou rebaser. Vous pouvez également exécuter une extraction Git, qui combine une extraction Git avec une fusion Git ou une rebase. La fusion Git et la rebase Git mettent à jour une branche cible en appliquant des validations à partir d’une branche source. Toutefois, la fusion Git et la rebase Git utilisent différentes stratégies. Pour plus d’informations, consultez Mettre à jour les branches avec fusion ou rebasement et Quand rebaser ou fusionner.
Mettre à jour des branches avec fusion ou rebase
La fusion Git et la rebase Git intègrent des validations à partir d’une branche source dans votre branche locale actuelle (branche cible). La fusion Git effectue un transfert rapide ou une fusion sans transfert rapide. La fusion sans transfert rapide est également connue sous le nom de fusion tridirectionnel ou de fusion vraie . La rebase Git est un autre type de fusion. Ces types de fusion sont présentés dans le diagramme suivant.
La fusion Git et la rebase Git sont largement utilisées dans le flux de travail Git. Lors de l’utilisation d’une fonctionnalité locale ou d’une branche de correction de bogues, il est courant de :
- Conservez votre branche locale
mainactuelle avec son équivalent distant en extrayant régulièrement pour extraire et fusionner des validations distantes. - Intégrez les mises à jour de branche locale
mainà votre branche de fonctionnalité locale à l’aide d’une nouvelle base ou d’une fusion. - Sauvegardez votre travail sur la branche de fonctionnalité locale en le transmettant à la branche distante correspondante.
- À la fin de la fonctionnalité, créez une demande de tirage pour fusionner votre branche de fonctionnalité distante dans la branche distante
main.
Cette approche vous aide à :
- Restez au courant du travail récent par d’autres personnes susceptibles d’affecter votre travail.
- Résolvez rapidement les conflits entre votre travail et celui d’autres personnes.
- Appliquez votre nouvelle fonctionnalité en plus du contenu du projet up-to-date.
- Obtenez une révision de demande de tirage (pull request) de votre travail.
Merge
Pour la fusion Git, si l’extrémité de la branche cible existe dans la branche source, le type de fusion par défaut est une fusion rapide vers l’avant. Sinon, le type de fusion par défaut est une fusion sans transfert rapide.
Une fusion Git à transfert rapide ne peut jamais avoir de conflit de fusion , car Git n’applique pas de fusion rapide si la pointe de la branche cible a divergent de la branche source. Par défaut, Git utilise une fusion rapide dans la mesure du possible. Par exemple, Git applique une fusion rapide sur une branche locale que vous mettez à jour uniquement en extrayant de sa branche distante.
Une fusion Git sans rapidité génère une nouvelle branche cible « validation de fusion » qui intègre les modifications de branche source avec les modifications de branche cible. Les modifications applicables sont celles apportées après la dernière validation commune aux deux branches. Dans le diagramme précédent, la validation C est la dernière validation commune dans les deux branches. Si une modification de branche source est en conflit avec une modification de branche cible, Git vous invite à résoudre le conflit de fusion. La validation de fusion (L) contient les modifications de branche source et de branche cible intégrées. Les conseils de branche source et cible (K et E) sont les parents de la validation de fusion. Dans l’historique de validation de votre branche, une validation de fusion est un marqueur utile pour une opération de fusion et indique clairement quelles branches ont été fusionnées.
La fusion Git modifie uniquement la branche cible. La branche source reste inchangée. Lorsque vous rencontrez un ou plusieurs conflits de fusion, vous devez les résoudre pour terminer la fusion. Vous pouvez également annuler l’opération de fusion et renvoyer la branche cible à son état antérieur.
Pour plus d’informations sur les options et stratégies de fusion, consultez le manuel de référence Git et les stratégies de fusion Git.
Conseil / Astuce
Si la branche source est une branche de suivi à distance, vérifiez que la branche est up-to-date en exécutant une extraction Git avant la fusion.
- Visual Studio 2022
- Visual Studio 2019 - Menu Git
- Visual Studio 2019 - Team Explorer
- Ligne de commande Git
Choisissez Git > Manage Branches dans la barre de menus pour ouvrir la fenêtre Dépôt Git .
Dans la fenêtre Dépôt Git , cliquez avec le bouton droit sur la branche cible, puis sélectionnez Extraction.
Cliquez avec le bouton droit sur la branche source, puis sélectionnez Fusionner <la branche> source dans <la branche> cible.
Visual Studio affiche un message de confirmation après une fusion réussie.
Si la fusion est interrompue en raison de conflits de fusion, Visual Studio vous avertit. Vous pouvez résoudre les conflits ou annuler la fusion et revenir à l’état de pré-fusion.
Rebase
Git rebase resequence l’historique des validations de la branche cible afin qu’elle contienne toutes les validations de branche source, suivie de toutes les validations de branche cible depuis la dernière validation commune. Une autre façon de l’afficher est qu’une rebase Git relecture les modifications apportées à votre branche cible en plus de l’historique des branches sources. Si une modification de branche source est en conflit avec une modification de branche cible, Git vous invite à résoudre le conflit de fusion. La rebase Git ne crée pas de validation de fusion. Notamment, Git rebase change la séquence des validations de branche cible existantes, ce qui n’est pas le cas pour les autres stratégies de fusion. Dans le diagramme précédent, le commit K' contient les mêmes modifications que K, mais a un nouvel ID de validation, car il renvoie à la validation E au lieu de C.
Git rebase uniquement modifie la branche cible. La branche source reste inchangée. Lorsque vous rencontrez un ou plusieurs conflits de fusion, vous devez les résoudre pour terminer la rebase. Vous pouvez également annuler l’opération de rebase et renvoyer la branche cible à son état antérieur.
Si vous êtes la seule personne travaillant sur votre fonctionnalité ou branche de correction de bogues, envisagez d’utiliser git rebase pour intégrer de nouvelles main validations de branche dans celle-ci. Sinon, utilisez la fusion Git. Pour plus d’informations sur la rebase Git et quand l’utiliser, consultez Appliquer des modifications avec rebase et rebase et fusion.
Conseil / Astuce
Si la branche source est une branche de suivi à distance, vérifiez que la branche est up-to-date en exécutant une extraction Git avant la rebase.
- Visual Studio 2022
- Visual Studio 2019 - Menu Git
- Visual Studio 2019 - Team Explorer
- Ligne de commande Git
Choisissez Git > Manage Branches pour ouvrir la fenêtre Dépôt Git .
Dans la fenêtre Dépôt Git , cliquez avec le bouton droit sur la branche cible, puis sélectionnez Extraction.
Cliquez avec le bouton droit sur la branche source, puis sélectionnez Rebase <target-branch> sur <la branche> source.
Visual Studio affiche un message de confirmation après une nouvelle base réussie.
Si le rebase est arrêté en raison de conflits de fusion, Visual Studio vous avertit. Vous pouvez résoudre les conflits ou annuler la rebase et revenir à l’état de pré-rebase.
Télécharger les modifications et mettre à jour les branches avec extraction
Par défaut, Git pull combine une extraction Git et une fusion Git pour mettre à jour votre branche locale actuelle à partir de son équivalent distant. Si vous le souhaitez, git pull peut effectuer une rebase Git au lieu d’une fusion Git.
Contrairement à Git fetch, Git pull met à jour votre branche locale actuelle immédiatement après le téléchargement de nouveaux commits à partir du dépôt distant. Utilisez git pull lorsque vous savez que vous souhaitez mettre à jour votre branche locale actuelle juste après une extraction Git.
Conseil / Astuce
Pour configurer Visual Studio de manière à rebaser au lieu de fusionner lorsque vous extrayez :
- Dans le menu Git, accédez auxparamètres globaux git du contrôle > decode source>>.
- Définissez la branche locale rebase lors de l’extraction de l’option
True.
- Visual Studio 2022
- Visual Studio 2019 - Menu Git
- Visual Studio 2019 - Team Explorer
- Ligne de commande Git
Dans la fenêtre Modifications Git , choisissez Pull.
Vous pouvez également choisir Pull dans le menu Git.
Un message de confirmation s’affiche une fois l’opération de tirage terminée.
S’il existe des conflits pendant la partie fusion de l’opération d’extraction, Visual Studio vous avertit. Vous pouvez résoudre les conflits ou annuler la fusion et revenir à l’état de pré-fusion.
Note
Dans Visual Studio, Synceffectue un pull , puis un push pour synchroniser une branche locale et distante. Pour plus d’informations sur la synchronisation, consultez Utiliser git fetch, pull, push et sync pour le contrôle de version dans Visual Studio.