-1
votes

Quel est l'équivalent de "Rollback" TFVC dans Git?

Si j'utilise t Eam F EDATION s Ource C Ontrol je peux facilement retourner à l'ancien changeant.

En supposant que j'ai un fichier avec 4 versions, chaque version a une modification:

  • CHANGEMENTS A126 - Version 1.
  • CHANGEMENTS B347 - Version 2.
  • CHANGEMENTS C560 - Version 3.
  • CHANGEMENTST D912 - Version 4.

    Maintenant, j'ai trouvé beaucoup de bugs dans les versions 3 et 4 et je veux retourner rapidement à la version 2.

    dans Visual Studio Je peux cliquer sur "Afficher l'historique" dans le fichier, cliquez sur ModificationT B347 ("Version 2"), puis "Rollback".

    Maintenant, j'ai une nouvelle modification avec le fichier dans la version 2 et je peux en enregistrer (j'ai toujours la version 3/4 de mon historique, je peux donc aussi y retourner à un jour).

    Dans Git, je sais qu'il y a revenir , réinitialiser (dur, doux) mais je ne sais pas exactement ce que je dois faire pour atteindre le même résultat.

    alors quelle est la meilleure façon de retourner en une version ancienne dans Git (préféré via Visual Studio)?


0 commentaires

5 Réponses :


1
votes
git revert d912 c560

2 commentaires

Mais il supprimera la version 3/4 commet et je ne le veux pas. Dans TFVC, la restauration ne supprime pas de chengensets, mais ajoutez plutôt une nouvelle modification de la version 2.


Merci! J'ai accepté @Elpiekay réponse car est plus détaillé.



0
votes

Je ne sais pas quel enregistrement est en TFVC, mais si vous souhaitez simplement visualiser le fichier V2, vous pouvez GIT Checkout B347 - TheFilenameYouwant


5 commentaires

Checkin = commit & pousser. Je ne veux pas seulement voir Je souhaite voir le fichier v2, leur commettre et pousser, pour mettre à jour mon représentant de retour à V2.


Voulez-vous que les modifications que vous avez apportées à V2 soient également pour être en V3 et V4?


non. Je veux que mon repo retourne à V2 (mais pas de supprimer V3 et V4 de commettre l'histoire).


Voulez-vous aussi les autres fichiers à V2 ou devraient-ils rester v4?


Je veux que tous les fichiers soient de retour à v2



1
votes

Supposons que vous ayez 4 commits abcd code>, le fichier foo.txt code> est modifié dans chacun d'eux et les codes de C code> et d code> avoir des bogues introduits par foo.txt code>.

1. Outher Files peuvent être modifiés dans C et D. Si vous souhaitez annuler uniquement foo.txt à la version de B code>: p> xxx pré>

si vous souhaitez commettre la restauration, p> xxx pré >

et l'historique sera abcd-r1 code>. p>

2.Si vous souhaitez annuler toutes les modifications de C et D (y compris celles d'autres fichiers le cas échéant) et CD ont été poussés au référentiel à distance: p> xxx pré>

et l'historique sera abcd-r2-r3 code>. p>

3.Si vous souhaitez annuler toutes les modifications des C et D et que CD n'a pas été appuyé sur le référentiel à distance: P>

git reset B --hard


2 commentaires

Très bonne réponse! Merci! Je ne pense pas pouvoir revenir à 2 commettre en VS en un revenir, mais je peux le faire en ligne de commande :)


@Shaykiabramczyk ici git revert b..d fonctionne aussi. B..d signifie C et d et git les reverront correctement dans la séquence inverse. C'est pratique lorsque vous souhaitez rétablir un ensemble de commits consécutifs. En outre, l'option - no-edit rend le processus plus facilement si vous ne souhaitez pas modifier le message de revenir par défaut.



0
votes

Pour continuer à travailler sur l'état V2 du référentiel de votre copie de travail, vous pouvez faire

# get uncommitted changes out of the way
git stash

# recreate v2 in the working copy
git checkout commit-hash-or-tag-of-v2 

# create new branch based on v2
git checkout -b branchname-for-new-branch


0 commentaires

0
votes

(1) Comment rouler et "perdre" versions 3 et 4:

C'est aussi simple que: xxx

Explication:

  • retourne à la version 2.
  • vous "perdre" versions 3 et 4.
  • Si vous voulez toujours obtenir des versions 3 et 4, ces commits sont toujours disponibles dans votre reflèvement pendant une certaine période en fonction de vos paramètres (la période par défaut est de 90 jours à compter de la mémoire).

    ou (2) crée une nouvelle branche (pour garder les versions 3 et 4):
    • Vous pouvez simplement créer une nouvelle succursale à la version 2.

      Git Checkout B347

      Checkout git -b redo-work-from-version-2

      Explication:

      • Vous revenez à B347, dans un état sans tête. Ignorez cela pour le moment.
      • Nous créons une nouvelle succursale appelée redo-work-from-version-2 .
      • La version 3 et la version 4 existera toujours et sont disponibles, mais elles seront sur une branche différente.


0 commentaires