Je suis en train d’appliquer des modifications j’ai planqué plus tôt avec `` et faire passer le message :
Toute suggestion sur la manière de faire face à cela ?
Je suis en train d’appliquer des modifications j’ai planqué plus tôt avec `` et faire passer le message :
Toute suggestion sur la manière de faire face à cela ?
Quand je dois appliquer planqué les modifications apportées à une sale copie de travail, p. ex. une fenêtre plus d'un ensemble de modifications de la cachette, j'utilise le suivant:
$ git stash show -p | git apply -3 && git stash drop
Fondamentalement, il
Je me demande pourquoi il n'y a pas d' -f
(force) option pour git stash pop
qui devrait se comportent exactement comme le one-liner au-dessus.
En attendant, vous pouvez ajouter ce one-liner comme un git alias:
$ git config --global --replace-all alias.unstash \
'!git stash show -p | git apply -3 && git stash drop'
$ git unstash
Grâce à @SamHasler pour souligner l' -3
paramètre qui permet de résoudre les conflits directement via 3-voie de fusion.
Vous pouvez le faire sans avoir à ranger les modifications apportées par l'exportation de la cachette que vous voulez comme un fichier de correctif manuellement et en l'appliquant.
Par exemple, disons que vous souhaitez appliquer stash@{0} pour un sale arbre:
L'exportation stash@{0} comme un patch:
git stash show-p stash@{0} > Stash0.patch
Appliquer manuellement les modifications:
git appliquer Stash0.patch
Si la deuxième étape échoue, vous devrez modifier le Stash0.fichier de patch pour corriger les erreurs et d'essayer ensuite de git appliquer à nouveau.
Nettoyer votre répertoire de travail avec git reset, valider les modifications ou, si vous voulez planquer les changements en cours, essayez :
stash git $ économisez « description des changements en cours » $ git stash pop stash@{1}
Ceci planquer les changements actuels et pop puis la deuxième cachette de la pile de la cachette.
Mathias la solution est certainement la plus proche d'un git stash pop --force (et vraiment, allez Git devs, let's get cette option déjà!)
Toutefois, si vous voulez faire la même chose en utilisant uniquement des commandes git, vous pouvez:
En d'autres termes, faire un commit (qui ne sera jamais notre push) de vos modifications en cours. Maintenant que votre espace de travail est propre, pop de votre cachette. Maintenant, engager la cachette des changements comme une modification à votre précédente livraison. Ayant fait cela, vous avez maintenant les deux ensembles de modifications combinées dans un seul commit ("Fixme"); il suffit de le réinitialiser (--soft PAS --difficile, donc rien n'est perdu) de passer à la caisse "avant que la commettre", et maintenant vous avez deux ensembles de modifications, complètement non validées.
**EDIT**
Je viens de réaliser, c'est même plus facile, vous pouvez passer directement à l'étape 3, donc ...
(Commettre les modifications en cours, pop off le planqué des changements, le reset que le premier s'engager à obtenir deux ensembles de modifications combinées dans un état non validée.)
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.