Existe-t-il un moyen de rétablir une validation afin que ma copie locale conserve les modifications apportées dans cette validation, mais qu'elles deviennent des modifications non validées dans ma copie de travail? La restauration d'une validation vous ramène à la validation précédente - je souhaite conserver les modifications apportées, mais je les ai validées dans la mauvaise branche.
Cela n'a pas été poussé, seulement commis.
git reset --soft
et lesgit reset --mixed
deux le font (un peu différemment), voir git-resetRéponses:
Il existe de nombreuses façons de le faire, par exemple:
au cas où vous n'auriez pas encore poussé le commit publiquement:
Voilà, vos modifications de validation seront dans votre répertoire de travail, tandis que la dernière validation sera supprimée de votre branche actuelle. Voir git reset man
Si vous avez fait pousser publiquement (sur une branche appelée « maître »):
revenir valider normalement et pousser
maintenant si vous voulez avoir ces changements comme vous les modifications locales dans votre copie de travail ("afin que votre copie locale conserve les modifications apportées dans ce commit") - il suffit de rétablir le commit de retour avec l'
--no-commit
option:J'ai conçu un petit exemple: https://github.com/Isantipov/git-revert/commits/master
la source
reset
commande mentionnée dit de réinitialiser "doucement" à 1 tour avant la tête, ce qui préserve tous les changements locaux. ce n'était pas immédiatement évident pour moi pour une utilisation dans SourceTree. assurez-vous simplement que vous réinitialisez doucement la version précédente, et non la version que vous essayez de réinitialiser"Already up to date"
quand on fait la fusion.Si vous avez poussé les modifications, vous pouvez le
undo
faire et remettre les fichiers sur scène sans utiliser une autre branche.Il créera un fichier de correctif contenant les dernières modifications de branche. Ensuite, il annule les modifications. Et enfin, appliquez les fichiers de correctifs à l'arborescence de travail.
la source
rm patch
aussi vouloirPour le cas: "Cela n'a pas été poussé, seulement commis ." - si vous utilisez IntelliJ (ou un autre IDE JetBrains) et que vous n'avez pas encore poussé les modifications, vous pouvez le faire ensuite.
Terminé.
Cela "désengagera" vos modifications et ramènera votre statut git au point avant votre dernier commit local. Vous ne perdrez aucune des modifications que vous avez apportées.
la source
git reset --soft "HEAD^"
Windows, btw. :)Avec moi, cela se produit principalement lorsque je pousse les modifications dans la mauvaise branche et que je m'en rends compte plus tard. Et les travaux suivants la plupart du temps.
la source
2020 façon simple:
Validez le hachage du dernier commit que vous souhaitez conserver.
la source
git checkout nom_branche
git merge --abort
statut git
git reset --hard origin / branch_name
la source