Maison > Questions et réponses > le corps du texte
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
巴扎黑2017-05-02 09:39:50
$ mkdir test
$ cd test
$ git init
$ echo aaaa>a.txt
$ echo bbbb>b.txt
$ git commit -a -m "init two files"
[master (root-commit) 2ca34b8] init
...
$ echo update>a.txt
$ git commit -a -m "update file a"
[master **e216f56**] update file a
...
$ echo update>b.txt
$ git commit -a -m "update file b"
[master 6906147] update file b
...
$ git revert **e216f56**
unix2dos: converting file f:/test/.git/COMMIT_EDITMSG...
dos2unix: converting file f:/test/.git/COMMIT_EDITMSG...
[master 2a9c653] Revert "update file a"
...
仅有的幸福2017-05-02 09:39:50
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..
给我你的怀抱2017-05-02 09:39:50
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
我想大声告诉你2017-05-02 09:39:50
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
大家讲道理2017-05-02 09:39:50
Ne pouvez-vous pas simplement modifier les mauvais, puis les soumettre une fois pour les écraser ?
伊谢尔伦2017-05-02 09:39:50
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ênant
Dans ce cas, vous devriez utiliser. git revert
, ce qui provoquera un seul commit
ringa_lee2017-05-02 09:39:50
git rebase -i HEAD^^^
Ouvrez un document avec l'éditeur par défaut, modifiez le A
avant de le soumettre à drop
ou abrégez-le en d
et enregistrez-le.
La soumission sera automatiquement rejetée (s'il y a un conflit, vous devez résoudre le conflit vous-même)
PHP中文网2017-05-02 09:39:50
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
伊谢尔伦2017-05-02 09:39:50
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...