Si engage 4 et 5 sont dans votre dépôt seulement et n'ont pas été poussé ou tiré par un autre dépôt, vous pouvez simplement:
git reset --hard SHA1_HASH_OF_COMMIT_3
Vous peut trouver le hachage SHA1 d'un commit en utilisant git log
ou vous pouvez utiliser des techniques de dénomination plus avancées, voir git help rev-parse
en particulier la section 'SPECIFYING REVISIONS'.
L'utilisation de cette commande laissera les commits 4 et 5 inaccessibles à partir de la pointe de la branche. Les commits ne seront toutefois pas perdus, car ces commits sont conservés dans la refonte de la branche. Vous pouvez utiliser git reflog
pour identifier une validation inaccessible. La restauration peut alors être effectuée avec une autre git reset --hard
. Cette page here décrit tout cela plutôt bien. Il est recommandé de lancer régulièrement git gc
. certaines commandes le font aussi pour vous automatiquement. Cela effectue essentiellement une gestion interne sur le référentiel, par exemple "compresser les révisions de fichiers (pour réduire l'espace disque et augmenter les performances) et supprimer les objets inaccessibles". Les objets inaccessibles sont supprimés du référentiel après (par défaut) 30 jours. Cela peut être modifié en utilisant l'option de configuration gc.reflogExpireUnreachable
.
J'irais avec revenir si vous avez poussé vers un référentiel public. sinon les autres options sont bien. – xenoterracide