Non, seulement git reset --hard et ensuite git push -f.
Votre question demande comment annuler une validation à distance. Le seul moyen est d'effectuer des corrections locales, puis de forcer la poussée. Et de nombreuses personnes ont mentionné que la poussée forcée est une très mauvaise pratique, à moins qu'elle ne soit nécessaire ou que l'individu n'ait pas divulgué l'information. projet ou Seuls des projets en petite équipe (coûts de communication inférieurs) sont réalisables.
Après avoir lu vos commentaires sur d'autres réponses, il semble que vous souhaitiez nettoyer l'historique des soumissions, donc git est définitivement très bon dans ce domaine par rapport aux autres VCS. Vous pouvez utiliser la commande git rebase pour reconstruire l'historique, réorganiser, fusionner et diviser certains commits. Bref, cela suffit pour nettoyer votre soi-disant historique sale. Si vous souhaitez apporter des modifications définitives à l'ensemble de l'historique, la commande git fileter-branch est également disponible, qui est très flexible et mérite d'être explorée.
Parlons de mon processus de soumission. Je modifie généralement un fichier jusqu'à ce qu'il atteigne mon objectif, puis je commence à le soumettre. À ce stade, je ne fais pas que soumettre directement, mais j'utilise les plug-ins vim et vim-fugitive. . , ouvrez l'espace de travail et la zone de staging en mode diff, puis reproduisez mes modifications étape par étape dans la zone de staging, et soumettez-les au moment opportun. Depuis que j'ai terminé toute la modification, je sais très bien qui doit commencer en premier et en dernier dans chaque révision, donc je peux la rendre relativement propre, claire et "atomique" (c'est-à-dire qu'un commit n'effectue qu'une seule modification spécifique, plutôt que de mélanger plusieurs modifications. ) pour faciliter la révision du code par d'autres.
——————
Enfin, je voudrais souligner que SF est différent du modèle de forum national. Ce n'est pas une méthode de questions-réponses, de questions-réponses. Si vous sentez que vous devez ajouter quelque chose à votre question, modifiez-la simplement directement afin que tous les abonnés en soient informés. Si vous mettez uniquement à jour et ajoutez des questions dans les commentaires d'autres réponses, personne ne sera averti.
Veuillez prendre au sérieux ce que vous téléchargez sur Internet. Tout cela appartient à l'histoire. Vous pouvez modifier vos archives localement, elles deviendront de l'histoire sur Internet et doivent être respectées.
Après avoir longtemps lutté, je veux juste dire qu'il ne devrait y avoir aucun changement après le téléchargement. Il y a quelque chose qui ne va pas avec votre idée.
Mon approche consiste à revenir à la version correcte localement, puis à la pousser une fois. Si vous souhaitez éliminer l'enregistrement de validation précédent, il semble que vous deviez utiliser git rebase
Non, seulement
git reset --hard
et ensuitegit push -f
.Votre question demande comment annuler une validation à distance. Le seul moyen est d'effectuer des corrections locales, puis de forcer la poussée. Et de nombreuses personnes ont mentionné que la poussée forcée est une très mauvaise pratique, à moins qu'elle ne soit nécessaire ou que l'individu n'ait pas divulgué l'information. projet ou Seuls des projets en petite équipe (coûts de communication inférieurs) sont réalisables.
Après avoir lu vos commentaires sur d'autres réponses, il semble que vous souhaitiez nettoyer l'historique des soumissions, donc git est définitivement très bon dans ce domaine par rapport aux autres VCS. Vous pouvez utiliser la commande
git rebase
pour reconstruire l'historique, réorganiser, fusionner et diviser certains commits. Bref, cela suffit pour nettoyer votre soi-disant historique sale. Si vous souhaitez apporter des modifications définitives à l'ensemble de l'historique, la commandegit fileter-branch
est également disponible, qui est très flexible et mérite d'être explorée.Parlons de mon processus de soumission. Je modifie généralement un fichier jusqu'à ce qu'il atteigne mon objectif, puis je commence à le soumettre. À ce stade, je ne fais pas que soumettre directement, mais j'utilise les plug-ins vim et vim-fugitive. . , ouvrez l'espace de travail et la zone de staging en mode diff, puis reproduisez mes modifications étape par étape dans la zone de staging, et soumettez-les au moment opportun. Depuis que j'ai terminé toute la modification, je sais très bien qui doit commencer en premier et en dernier dans chaque révision, donc je peux la rendre relativement propre, claire et "atomique" (c'est-à-dire qu'un commit n'effectue qu'une seule modification spécifique, plutôt que de mélanger plusieurs modifications. ) pour faciliter la révision du code par d'autres.
——————
Enfin, je voudrais souligner que SF est différent du modèle de forum national. Ce n'est pas une méthode de questions-réponses, de questions-réponses. Si vous sentez que vous devez ajouter quelque chose à votre question, modifiez-la simplement directement afin que tous les abonnés en soient informés. Si vous mettez uniquement à jour et ajoutez des questions dans les commentaires d'autres réponses, personne ne sera averti.
Veuillez prendre au sérieux ce que vous téléchargez sur Internet. Tout cela appartient à l'histoire. Vous pouvez modifier vos archives localement, elles deviendront de l'histoire sur Internet et doivent être respectées.
Après avoir longtemps lutté, je veux juste dire qu'il ne devrait y avoir aucun changement après le téléchargement. Il y a quelque chose qui ne va pas avec votre idée.
Mon approche consiste à revenir à la version correcte localement, puis à la pousser une fois. Si vous souhaitez éliminer l'enregistrement de validation précédent, il semble que vous deviez utiliser git rebase
.Voir : Que faire après avoir soumis un commit incorrect à Github