J'ai suivi, tout en étant sur ma BranchA
locale:
FileA
(par erreur) git add FileA
git commit -m "FichierA modifié"
Donc, FileA
est dans mon commit local (jamais poussé vers distant) sur ma branche locale BranchA
(également jamais poussé vers distant).
Comment annuler les modifications apportées à FileA?
MISE À JOUR ET COMMENT JE LE RÉSOLU
J'ai annulé les modifications apportées à FileA depuis SourceTree au lieu de git car j'ai réalisé que c'était plus simple pour moi.
Pour ce faire, dans SourceTree, r-c sur le fichier commité FileA> "Log Select ..."> sélectionnez le commit précédent (celui qui précède le vôtre)> r-c dessus et choisissez "Reset to this commit". Cela a fait le travail mais merci à tous
4 Réponses :
Vous pouvez réinitialiser l'index de la branche actuelle au commit précédent avec git reset HEAD ~ 1
. Ajoutez --hard
pour réinitialiser votre répertoire de travail, ou laissez-le désactivé si vous souhaitez affiner les modifications et recommencer.
Si vous avez d'autres modifications que vous avez apportées depuis lors, utilisez git rebase
pour déplacer d'abord votre commit incriminé en haut de la pile.
Mais je veux seulement que ce fichier soit annulé, pas tout le commit. J'ai FileA, FileB, FileC dans ce commit, je veux que seul FileA soit rétabli à la version avant ma modification
Alors laissez de côté le --hard, vous pouvez donc affiner (git checkout - FileA) et recommencer.
Pour annuler spécifiquement les modifications apportées à ce fichier mais garder le commit inchangé sinon:
1) Rétablissez le fichierA à son état précédent
git commit --amend
2) Incluez cela dans le dernier commit que vous avez fait sur BranchA
git checkout HEAD^ -- path/to/fileA
(Et comme il n'a pas encore été poussé, pas besoin de pousser avec forcer la prochaine fois.)
Parce que git checkout HEAD ^ - path / to / fileA
écrit d'abord le fichier dans l'index, puis dans l'arbre de travail, vous n'avez en fait pas besoin de git add
étape ici. Mais c'est par ailleurs le jeu de commandes Git le plus court (et probablement le meilleur) à utiliser; voté ...
Merci, j'accepte votre réponse mais je n'ai pas eu la chance d'essayer puisque je l'ai fait à partir de SourceTree à la place. Dans SourceTree, r-c sur le fichier validé> Log Select ...> sélectionnez le commit précédent (celui qui précède le vôtre)> r-c dessus et choisissez "Reset to this commit". Cela a fait le travail mais merci à tous
Commencez par réinitialiser votre branche sur le commit précédent:
git add files... git commit -m "message"
Ensuite, vous pouvez utiliser checkout
pour réinitialiser des fichiers spécifiques à l'ancien état:
XXX
Une fois que vous avez fait cela, vous pouvez valider à nouveau vos modifications:
git checkout -- files...
Une autre façon de le faire (je suppose que votre commit a des changements uniquement dans les fichiers, vous voulez les supprimer):
Être dans votre BranchA
git rebase -i HEAD~2
une liste de deux commits, triés historiquement asc. Le dernier est ce que vous aimeriez changer. Donc, vous voulez annuler ce commit. Déplacez le curseur sur le deuxième commit et au lieu de pick
tapez drop
, ou simplement d
.
Enregistrez vos modifications ( dépend de votre éditeur, cela peut être CTRL
+ X
+ SHIFT
+ Y
pour nano code> ou
: wq
pour vim
, et c'est tout.
stackoverflow.com/questions/927358/...