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.
La fenêtre Dépôt Git fournit une expérience Git en plein écran qui vous permet de gérer votre dépôt Git et de vous tenir à jour sur les projets de votre équipe. Par exemple, vous pouvez avoir besoin de réinitialiser, rétablir ou faire un cherry-pick de commits, ou simplement nettoyer votre historique de commit. La fenêtre Dépôt Git est également l’endroit idéal pour visualiser et gérer vos branches.
La gestion de version de Visual Studio est facile avec Git. Vous pouvez travailler à distance avec le fournisseur Git de votre choix, comme GitHub ou Azure DevOps. Vous pouvez également travailler localement sans fournisseur.
Ouvrir la fenêtre Référentiel Git
Pour ouvrir la fenêtre Référentiel Git, choisissez Afficher>le référentiel Git (ou appuyez sur Ctrl+0, Ctrl+R), ou appuyez sur Ctrl+Q et sous Fonctionnalités, recherchez Référentiel Git.
Conseil / Astuce
Pour ouvrir cette fenêtre lors du redémarrage, sélectionnezParamètres> et cochez la case « Restaurer la fenêtre du référentiel Git lors du redémarrage ».
Travailler sur plusieurs branches avec des arborescences de travail Git
Une arborescence de travail Git est un répertoire de travail distinct pour le même référentiel. Les arborescences de travail vous permettent de travailler sur plusieurs branches en même temps sans modifier ou cloner à nouveau le référentiel.
Pour créer et ouvrir une arborescence de travail :
Dans la fenêtre Référentiel Git , cliquez avec le bouton droit sur une branche, puis sélectionnez Nouvelle arborescence de travail. Vous pouvez créer une branche pour l’arborescence de travail ou utiliser la branche sélectionnée.
Vous pouvez également cliquer avec le bouton droit sur une validation dans le graphique d’historique et sélectionner Nouvelle arborescence de travail à partir de laquelle créer une arborescence de travail à partir de cette validation.
Ouvrez l’arborescence de travail en sélectionnant Ouvrir Worktree dans la fenêtre active ou Ouvrir Worktree dans la nouvelle fenêtre.
Les arborescences de travail apparaissent avec des branches dans la fenêtre Référentiel Git . Pour basculer vers une arborescence de travail, sélectionnez-la dans la liste des branches, le sélecteur de branche ou le sélecteur de référentiels.
Pour supprimer une arborescence de travail, cliquez avec le bouton droit sur l’arborescence de travail dans la fenêtre Dépôt Git , puis sélectionnez Supprimer l’arborescence de travail.
Pour plus d’informations et pour partager des commentaires, consultez le ticket de fonctionnalité de support git worktree.
Modifier le dernier commit (amender)
La mise à jour du dernier commit est appelée amendement dans Git, et il s’agit d’un cas d’usage courant. Parfois, vous devez simplement mettre à jour votre message de commit, ou vous pouvez avoir besoin d’ajouter un changement de dernière minute.
Vous pouvez amender un commit sur la ligne de commande avec la commande suivante :
git commit --amend
La fenêtre Référentiel Git facilite la mise à jour de votre dernier message de commit. Ouvrez les détails du dernier commit en double-cliquant dessus, puis sélectionnez l’option Modifier à côté du message de commit.
Quand vous avez fini de modifier votre message de commit, sélectionnez Amender.
Si vous devez ajouter des changements de code à votre dernier commit, vous pouvez le faire dans la fenêtre Changements Git. Cochez la case Amender, puis commitez vos changements.
Pour en savoir plus sur la modification, y compris sur la façon de changer les messages de commit autres que le plus récent, consultez Outils Git - Réécrire l'historique sur le site Web de Git.
Commits de fusion (squash)
Pour fusionner une série de validations, Git offre une option permettant de écraser les validations en une seule validation. Cette option est utile si vous effectuez fréquemment des commits et que vous vous retrouvez avec une longue liste de commits que vous souhaitez réorganiser avant de les pousser vers un dépôt distant.
Vous pouvez écraser deux commits sur la ligne de commande en utilisant la commande suivante :
git rebase -i HEAD~2
Ensuite, remplacez pick parsquash, enregistrez et mettez à jour le message de commit.
Pour fusionner des commits dans Visual Studio, utilisez la touche Ctrl pour sélectionner plusieurs commits à fusionner. Cliquez ensuite avec le bouton droit et sélectionnez Fusion Squash des commits. Visual Studio combine automatiquement vos messages de commit, mais il vaut mieux parfois fournir un message mis à jour. Après avoir vérifié et mis à jour votre message de commit, sélectionnez le bouton Squash.
Pour en savoir plus sur le squash, consultez Outils Git - Réécriture de l'historique sur le site web Git.
Fusionner et rebaser des branches
Si vous utilisez des branches Git pour travailler sur différentes fonctionnalités, vous devez parfois inclure des mises à jour introduites par d’autres branches. Ce besoin peut survenir lorsque vous travaillez toujours sur votre branche de fonctionnalité. Cela peut également survenir lorsque vous avez terminé de travailler sur votre branche de fonctionnalité et que vous devez conserver vos modifications en les ajoutant à une autre branche. Dans Git, vous pouvez ajouter ces mises à jour en fusionnant ou en rebasant des branches.
Note
Les instructions suivantes utilisent New_Feature comme exemple de nom d’une branche de fonctionnalité. Remplacez-le par le nom de votre propre branche.
Pour fusionner la branche primaire dans votre branche de fonctionnalité sur la ligne de commande, utilisez les commandes suivantes :
git checkout New_Feature
git merge main
Pour effectuer la même opération dans Visual Studio, consultez la branche de fonctionnalité en double-cliquant dessus dans la liste des branches. Cliquez ensuite avec le bouton droit sur main et sélectionnez Fusionner « main » dans « New_Feature ».
Pour rebaser la branche primaire dans votre branche de fonctionnalité sur la ligne de commande, utilisez les commandes suivantes :
git checkout New_Feature
git rebase main
Pour effectuer la même opération dans Visual Studio, consultez la branche de fonctionnalité en double-cliquant dessus dans la liste des branches. Cliquez ensuite avec le bouton droit sur main et sélectionnez Rebaser « New_Feature » sur « main ».
Pour en savoir plus sur la fusion, le rebasage et les branches en général, consultez Branchement Git sur le site web Git.
Copier des commits (cherry-pick)
Copiez les commits d’une branche vers une autre en utilisant l’option cherry-pick. Contrairement à une fusion ou un rebasage, le cherry-pick apporte uniquement les changements des commits que vous sélectionnez, au lieu de tous les changements, à une branche. La sélection ciblée est un excellent moyen de résoudre ces problèmes courants :
- Commit accidentel dans la mauvaise branche. Faites un cherry-pick des changements de la branche correcte, puis réinitialisez la branche d’origine sur le commit précédent.
- Tirage d’un ensemble de commits effectués dans une branche de fonctionnalité, afin de les refusionner plus tôt dans votre branche primaire.
- Déplacement de commits spécifiques à partir de la branche primaire sans rebasage de votre branche.
Pour copier les changements d’un commit vers votre branche actuelle à partir de la ligne de commande, utilisez la commande suivante :
git cherry-pick 7599e530
Pour faire de même dans Visual Studio, affichez un aperçu de la branche dans laquelle vous pouvez faire un cherry-pick d’un commit en la sélectionnant d’un simple clic. Cliquez ensuite avec le bouton droit sur le commit ciblé, puis sélectionnez Cherry-Pick.
Une fois l’opération terminée, Visual Studio affiche un message de réussite. Le commit ciblé par le cherry-pick s’affiche dans la section Sortant.
Pour en savoir plus sur la sélection des commits (cherry-pick), consultez le site web Git de la commande cherry-pick.
Annuler les changements
Utilisez la commande revert pour annuler les changements de commits poussés dans les branches partagées. La commande revert crée un commit qui annule les changements d’un commit précédent. La commande revert ne réécrit pas l’historique du dépôt, vous pouvez donc l’utiliser sans crainte quand vous travaillez avec d’autres personnes.
Pour rétablir les changements d’un commit à partir de la ligne de commande, utilisez les commandes suivantes. Remplacez l’ID d’exemple par l’ID d’un commit réel dans votre branche.
git revert 53333305
git commit
Dans l’exemple suivant, les commandes annulent les modifications introduites par le commit 53333305 et créent un nouveau commit sur la branche. Le commit d’origine est toujours dans l’historique Git. Pour faire de même dans Visual Studio, cliquez avec le bouton droit sur le commit que vous souhaitez rétablir, puis sélectionnez Rétablir. Une fois que vous avez confirmé votre action et que l’opération est terminée, Visual Studio affiche un message de réussite et un nouveau commit s’affiche dans la section Sortant.
Sélectionnez le nouveau commit pour confirmer qu’il annule les changements du commit inversé.
L’élément de menu Rétablir peut être grisé (désactivé) dans certaines circonstances, comme les validations de fusion ou lorsqu'une opération Git est en cours.
Pour en savoir plus sur l’annulation des changements, consultez la page web Git de la commande revert.
Réinitialiser une branche sur un état précédent
Utilisez la commande reset pour ramener une branche de votre dépôt local au contenu d’un commit précédent. Cette action supprime toutes les modifications intervenues après le commit sur lequel vous réinitialisez votre branche.
Avertissement
Ne réinitialisez pas les branches partagées, car vous risquez de supprimer le travail d’autres personnes. Utilisez la commande revert à la place.
Pour réinitialiser une branche sur un état précédent à partir de la ligne de commande, utilisez la commande suivante. Remplacez l’ID d’exemple par l’ID d’un commit réel dans votre branche.
git reset --hard 53333305
La partie --hard de la commande indique à Git de réinitialiser les fichiers sur l’état du commit précédent et d’ignorer les changements indexés. Pour faire de même dans Visual Studio, cliquez avec le bouton droit sur le commit sur lequel vous voulez réinitialiser votre branche, puis sélectionnez Réinitialiser>Supprimer les changements (--hard).
Pour en savoir plus sur la réinitialisation des branches, consultez la page web Git de la commande reset.