Comment restaurer dans git
过去多啦不再A梦
过去多啦不再A梦 2017-05-02 09:37:50
0
10
742

Scène :

  • 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

过去多啦不再A梦
过去多啦不再A梦

répondre à tous(10)
巴扎黑
$ 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"
...
PHPzhong

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ênant
Dans ce cas, vous devriez utiliser. git revert, ce qui provoquera un seul commit

左手右手慢动作

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)

Ty80
  1. git log Afficher le commitId de A B avant A

  2. git reset --hard A's previous commitId

  3. 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...

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal