Lorsque vous découvrez un spécifique s'engager en git
, vous vous retrouvez dans un détaché à la tête de l'état...qui est, votre copie de travail ne reflète plus l'état d'un nom de référence (comme le "maître"). Ceci est utile pour l'examen de l'état passé du référentiel, mais pas ce que vous voulez si vous êtes en train d'essayer de rétablir les modifications.
Si vous avez apporté des modifications à un fichier particulier et vous souhaitez simplement les jeter, vous pouvez utiliser l' checkout
de commande comme ceci:
git checkout myfile
Cela aura pour effet de rejeter toutes les modifications non validées et revenir le fichier dans quelle état il a dans la tête de votre branche courante. Si vous souhaitez annuler les modifications que vous avez déjà commis, vous souhaiterez peut-être utiliser l' reset
commande. Par exemple, ceci permet de réinitialiser le référentiel de l'état de la précédente livraison, en rejetant toute modification ultérieure:
git reset --hard HEAD^
Toutefois, si vous partagez le référentiel avec d'autres personnes, un git reset
peut être perturbateur (parce qu'il efface une partie de l'historique du dépôt). Si vous avez déjà partagé changements avec d'autres personnes, en général, vous voulez regarder à l' git revert
au lieu de cela, ce qui génère un "anticommit" -- qui est, il crée un nouveau commit qui "annule" les changements en question.
Le Git Livre a plus de détails.