web-dev-qa-db-fra.com

Comment obtenir une version spécifique de Git dans Visual Studio 2015?

Existe-t-il un moyen d'obtenir une version spécifique (à partir d'un commit spécifique) d'un fichier dans Visual Studio 2015 - Team Explorer/Team Services Git?

Je souhaite simplement exécuter la solution avec une version précédente d'un fichier, juste pour voir comment les choses fonctionnaient auparavant, puis revenir à la dernière version pour poursuivre le développement.

Je n'ai créé aucune branche. J'ai continué à m'engager dans la branche "maître".

34
TchiYuan

Dans Visual Studio 2015, si vous affiche l'historique (à partir des actions menu du panneau Modifications dans Team Explorer):

View History

Puis faites un clic droit sur le commit qui vous intéresse:

Right Click

Vous pouvez créer une branche à partir de là:

New branch

Je ne peux pas voir un moyen de simplement valider la validation dans Visual Studio.


En utilisant la ligne de commande, vous pouvez vérifier le commit SHA que vous voulez utiliser:

git checkout 9eab01d9

Lorsque vous avez terminé, vérifiez à nouveau master:

git checkout master

Vous pourriez recevoir des avertissements concernant le travail sur une tête isolée, dans ce cas, vous pourriez créer une branche temporairement :

git checkout -b temp-branch-name 9eab01d9

Il est judicieux de se familiariser avec la ligne de commande Git, les outils Visual Studio arrivent, mais il manque beaucoup de fonctionnalités.

40
DaveShaw

Merci à Matt Frear d’avoir fait remarquer que ma réponse initiale remettait toute la solution à un commit spécifique, alors que la question était de savoir comment utiliser une version spécifique de un fichier tout en gardant la dernière de tout le reste. Gardez le contenu de la publication originale en bas, au cas où quelqu'un le jugerait utile.


Pour conserver votre solution entière au plus tard, mais utilisez une ancienne version d'un fichier individuel:

Utilisation de Visual Studio 2015 Update 3:

Je vais ajouter des captures d’écran et nettoyer/reformater la réponse pour qu’elle soit plus facile à suivre, mais je voulais obtenir une réponse modifiée qui réponde mieux à la question jusqu’à ce que j’ai le temps de la revoir.

  1. Afficher l'historique sur la branche ( Team Explorer Branches → faites un clic droit sur la branche) View History on the branch
  2. Cliquez avec le bouton droit de la souris sur la validation souhaitée et sélectionnez Reset Réinitialiser et conserver les modifications (--mixed). Votre code local sera toujours celui qui est dans la dernière validation, mais toutes les modifications depuis la validation souhaitée seront affichées en tant que modifications en attente dans Team Explorer Modifications. Votre pointeur de branche se trouve maintenant sur le commit que vous avez réinitialisé, mais le code est toujours celui du commit que vous avez commencé (le dernier commit).
  3. Allez sur Team Explorer Modifications, cliquez avec le bouton droit de la souris sur le fichier pour lequel vous souhaitez utiliser la version dans la validation souhaitée et sélectionnez " Annuler les modifications ... ". Cela rétablira ce fichier dans le commit que vous avez réinitialisé, ce qui annulera le contenu de ce commit.

Vous aurez maintenant le dernier de chaque fichier dans le référentiel, à l'exception du fichier sur lequel vous venez d'annuler les modifications. Vous pouvez maintenant réinitialiser mixé à nouveau sur le dernier commit pour ne voir que le fichier que vous utilisez dans l'ancienne version de Team Explorer Modifications, mais si tout ce que vous essayez de faire est d’exécuter la solution, cette étape est inutile.


Pour réinitialiser l'ensemble du référentiel solution/source sur un commit spécifique:

Utilisation de Visual Studio 2015 Update 3:

[~ # ~] important [~ # ~]

Avec cette approche, tous les commits sortants seront perdus.

Assurez-vous d'effectuer l'étape 1 (appuyez sur les validations sortantes)

  1. Assurez-vous de ne pas avoir de commits sortants - effectuez un Push si vous avez des commits sortants (* Team Explorer → Sync Commits sortants) - Make sure you don't have any outgoing commits - perform a Push, if you do have outgoing commits
  2. Afficher l'historique sur la branche ( Team Explorer Branches → faites un clic droit sur la branche) View History on the branch
  3. Cliquez avec le bouton droit de la souris sur le commit souhaité et sélectionnez Reset Réinitialiser et supprimer les modifications (--hard). Right-click on the desired commit and select "Reset → Reset and Delete Changes (--hard) . Dans Team Explorer Sync, puis dans la fenêtre Afficher l'historique, vous obtiendrez des validations entrantes de la validation souhaitée à la dernière validation de la branche distante. et votre code local correspondra au commit voulu.

  4. Lorsque vous avez terminé, effectuez une extraction Team Explorer Sync pour amener votre branche locale au dernier commit de la branche distante.

Voir cette bonne réponse qui explique la commande 'git reset' et la différence entre --hard vs --mixed.

20
Chris Tossing

(Cela fonctionne à la fois dans VS2015 et VS2017.)

Je crois que c'est le moyen le plus simple:

  1. Dans l'Explorateur de solutions, ouvrez la version actuelle de votre fichier.
  2. Toujours dans l'Explorateur de solutions, cliquez avec le bouton droit sur le fichier et choisissez "Afficher l'historique".
  3. Dans la fenêtre d'historique, recherchez le commit de la version que vous souhaitez tester. Faites un clic droit dessus et choisissez "Ouvrir". Cela ouvre un fichier temporaire avec le contenu de la version souhaitée.
  4. Copiez le contenu de cette version (Ctrl-A Ctrl-C) et collez-le sur la version actuelle.

Vous pouvez maintenant faire ce que vous voulez avec ce fichier, puis annuler la modification en attente lorsque vous avez terminé.

4
TTT