Dans le cas d'un rebase passé que vous n'avez pas correctement avorté, vous avez maintenant (Git 2.12, T1 2017) git rebase --quit
Voir commit 9512177 (12 novembre 2016) de Nguyễn Thái Ngọc Duy ( pclouds
) .
(Fusionné par Junio C Hamano - gitster
- en commit 06cd5a1 , 19 déc 2016)
rebase
: ajouter --quit
au nettoyage rebaser, laisser tout le reste intact
Il y a des occasions où vous décidez d'interrompre un rebase en cours et de passer à autre chose mais vous oubliez de faire " git rebase --abort
" d'abord . Ou le rebase est en cours depuis si longtemps que vous l'avez oublié. Au moment où vous réalisez que (par exemple en commençant une autre rebase), il est déjà trop tard pour revenir sur vos pas. La solution est normalement
rm -r .git/<some rebase dir>
et continue ta vie.
Mais il pourrait y avoir deux répertoires différents pour <some rebase dir>
(et cela nécessite évidemment une certaine connaissance du fonctionnement du rebase), et la .git
partie " " pourrait être beaucoup plus longue si vous n'êtes pas dans top-dir, ou dans un arbre de travail lié. Et " rm -r
" est très dangereux de le faire .git
, une erreur pourrait détruire la base de données d'objets ou d'autres données importantes.
Fournissez " git rebase --quit
" pour ce cas d'utilisation, en imitant un précédent qui est " git cherry-pick --quit
".
Avant Git 2.27 (Q2 2020), l'entrée de stash créée par " git merge --autostash
" pour conserver l'état sale initial était supprimée par erreur lors de " git rebase --quit
", ce qui a été corrigé.
Voir commit 9b2df3e (28 avril 2020) par Denton Liu ( Denton-L
) .
(Fusionné par Junio C Hamano - gitster
- en commit 3afdeef , 29 avr 2020)
rebase
: enregistrer l'entrée de la sauvegarde automatique dans stash reflog
le--quit
Signé par: Denton Liu
Dans a03b55530a (" merge
: teach --autostash option", 2020-04-07, Git v2.27.0 - fusion listée dans le lot # 5 ), l' --autostash
option a été introduite pour git merge
.
(Voir « Est-ce que« git pull
» « peut-il automatiquement cacher et faire apparaître les modifications en attente? »)
En particulier, lorsqu'il git merge --quit
est exécuté avec une entrée de stockage automatique présente, il est enregistré dans le reflog de stockage.
Cela contraste avec le comportement actuel git rebase --quit
où l'entrée de la sauvegarde automatique est tout simplement supprimée.
Adoptez le comportement de git merge --quit
in git rebase --quit
et enregistrez l'entrée autostash dans le reflog stash au lieu de simplement la supprimer.