Tout comme le titre, j'ai fusionné le code inachevé de la branche vers master, et git l'a poussé vers github. Ensuite, j'ai continué à améliorer le code sur dev, puis quand j'ai voulu retirer la fusion, j'ai trouvé qu'après. en retirant la fusion locale, cela ne pouvait pas être le cas. Quand je l'ai poussé vers github, cela a montré qu'il y avait un conflit, je ne sais pas pourquoi.
Si vous fusionnez localement, vous pouvez visualiser vos opérations historiques via
git reflog
, puis utilisergit reset --hard HEAD@{n}
pour revenir à l'étapen
dans le reflogEnsuite,
git push origin master -f
vous pouvez ramener le maître distant à son état précédentEn fait, puisque vous fusionnez, un commit de fusion sera généré. Vous pouvez également commencer localement
git checkout master
A cette époque, votre master local devrait également être le plus récent. Commencez pargit log
regardez l'historique, puisgit reset --hard xxxxxx
revenez en arrière en fonction du hachage de validation.Ensuite, de la même manière,
git push origin master -f
peut mettre à jour le maître distantLes deux méthodes sont les mêmes, car vous avez supprimé un commit et le commit existe à distance. À l'heure actuelle, les informations historiques de deux cents ans sont incohérentes, vous ne pouvez donc pas directement
.git push origin master
à moins d'ajouter un. nouveau commit après ce commit, modifiez manuellement le code et revenez à l'état avant la fusion de cette façon, vous n'avez pas besoin de
-f
et pouvez directementgit push origin master
mettre à jour