1. Modifier le fichier A, valider et pousser vers l'entrepôt distant
2. Modifiez le fichier B, validez et envoyez-le à la télécommande
3. Maintenant, la modification du fichier A est erronée et doit être restaurée à la version précédente, mais la modification du fichier B doit être enregistrée. Que dois-je faire maintenant ?
Si vous utilisez la commande git reset --hard pour revenir au numéro de version modifié par A, alors les modifications de B seront également ignorées
git revert (numéro de version)
Vous ne perdrez rien en faisant cela, nous faisons tous cela..
.la commande git reset --hard revient au numéro de version modifié par A
git pull --rebase origin déroule la branche nombre de B Vérifiez le code pour voir s'il y a des conflits. Si les conflits sont résolus
, git push..
git reset --soft HEAD@{id}, cela retirera la soumission, mais les modifications dans l'espace de travail ne disparaîtront pas, puis corrigez les mauvaises modifications, soumettez et poussez vers l'extrémité distante
Dans ce cas, je vérifie généralement le journal directement et restaure le fichier A pour m'assurer que le fichier B est complet
Ne pouvez-vous pas simplement modifier les mauvais, puis les soumettre une fois pour les écraser ?
Ne utilisez
git reset
pour les commits qui ont été soumis sur la branche publique Si quelqu'un a déjà retiré ces commits, ce sera très gênantDans ce cas, vous devriez utiliser.
git revert
, ce qui provoquera un seul commitgit rebase -i HEAD^^^
Ouvrez un document avec l'éditeur par défaut, modifiez le
A
avant de le soumettre àdrop
ou abrégez-le end
et enregistrez-le.La soumission sera automatiquement rejetée (s'il y a un conflit, vous devez résoudre le conflit vous-même)
git log Afficher le commitId de A B avant A
git reset --hard A's previous commitId
git cerise-pick B’s commitId
Cette fonction s'appelle la fonction de paiement, qui permet d'obtenir les modifications soumises
Vous pouvez uniquement annuler, pas réinitialiser. Tout commit qui a été poussé vers la télécommande ne peut pas être réinitialisé ou validé --amend Cela détruira l'historique des versions des autres.
Pour plus d'informations sur le retour, vous pouvez lire mon article : /a/11...