Il s'agit de la commande git-cherry-pick qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
git-cherry-pick - Appliquer les changements introduits par certains commits existants
SYNOPSIS
jet cerise [--edit] [-n] [-m numéro-parent] [-s] [-x] [--ff]
[-S[ ]] ...
jet cerise --Continuez
jet cerise --quitter
jet cerise --avorter
DESCRIPTION
Étant donné un ou plusieurs commits existants, appliquez le changement que chacun introduit, en enregistrant un nouveau
s'engager pour chacun. Cela nécessite que votre arbre de travail soit propre (aucune modification de la
HEAD commit).
Lorsqu'il n'est pas évident de savoir comment appliquer une modification, les événements suivants se produisent :
1. La branche actuelle et le pointeur HEAD restent sur le dernier commit effectué avec succès.
2. La référence CHERRY_PICK_HEAD est définie pour pointer sur le commit qui a introduit le changement qui
est difficile à appliquer.
3. Les chemins dans lesquels le changement appliqué proprement sont mis à jour à la fois dans le fichier d'index et dans
votre arbre de travail.
4. Pour les chemins conflictuels, le fichier d'index enregistre jusqu'à trois versions, comme décrit dans
la section « VRAIE FUSION » de git-merge(1). Les fichiers de l'arbre de travail comprendront un
description du conflit encadrée par les marqueurs de conflit habituels <<<<<<< et
>>>>>>>.
5. Aucune autre modification n'est apportée.
See git-merge(1) pour quelques conseils sur la résolution de tels conflits.
OPTIONS
...
S'engage à choisir. Pour une liste plus complète des façons d'épeler les commits, voir
gitrévisions(7). Des ensembles de commits peuvent être passés mais aucune traversée n'est effectuée par défaut, car
si le --pas de marche option a été spécifiée, voir git-rev-liste(1). Notez que spécifier un
gamme nourrira tous ... arguments à une seule révision de marche (voir plus tard
exemple qui utilise maint maître..suivant).
-e, --edit
Avec cette option, jet cerise vous permettra de modifier le message de validation avant
s'engager.
-x
Lors de l'enregistrement du commit, ajoutez une ligne qui dit "(cerise cueillie du commit ...)"
au message de commit d'origine afin d'indiquer quel commit ce changement a été
cueillies à partir de. Ceci est fait uniquement pour les pics de cerises sans conflits. Ne pas utiliser
cette option si vous choisissez parmi votre branche privée, car les informations
est inutile pour le destinataire. Si par contre vous choisissez entre deux
branches visibles publiquement (par exemple, rétroporter un correctif vers une branche de maintenance pour un ancien
version d'une branche de développement), l'ajout de cette information peut être utile.
-r
Auparavant, la commande par défaut faisait -x décrit ci-dessus, et -r devait
le désactiver. Maintenant, la valeur par défaut n'est pas de faire -x donc cette option est un no-op.
-m numéro-parent, --mainline numéro-parent
Habituellement, vous ne pouvez pas choisir une fusion parce que vous ne savez pas de quel côté de la fusion
doit être considérée comme la ligne principale. Cette option spécifie le numéro parent (à partir de
de 1) de la ligne principale et permet à cherry-pick de rejouer le changement par rapport à la
parent spécifié.
-n, --no-commit
Habituellement, la commande crée automatiquement une séquence de commits. Ce drapeau applique le
les changements nécessaires pour sélectionner chaque commit nommé dans votre arbre de travail et l'index,
sans prendre aucun engagement. De plus, lorsque cette option est utilisée, votre index ne
doit correspondre au commit HEAD. La cueillette se fait contre l'état de départ de
votre indice.
Ceci est utile lorsque vous choisissez plusieurs effets de commits sur votre index dans un
rangée.
-s, --approbation
Ajoutez une ligne Sign-off-by à la fin du message de validation. Voir l'option d'approbation dans
git-commit(1) pour plus d'informations.
-S[ ], --gpg-signe[= ]
Les commits du signe GPG. L'argument keyid est facultatif et par défaut le committer
identité; si spécifié, il doit être collé à l'option sans espace.
--ff
Si le HEAD actuel est le même que le parent du commit sélectionné, alors un
une avance rapide jusqu'à ce commit sera effectuée.
--autoriser-vide
Par défaut, la sélection d'un commit vide échouera, indiquant qu'un
l'invocation de git commit --allow-empty est requise. Cette option remplace celle
comportement, permettant aux commits vides d'être conservés automatiquement dans un cherry-pick. Noter
que lorsque "--ff" est en vigueur, les commits vides qui répondent à l'exigence "fast-forward"
sera conservé même sans cette option. Notez également que l'utilisation de cette option ne conserve que
commits initialement vides (c'est-à-dire que le commit a enregistré le même arbre que son
parent). Les commits rendus vides en raison d'un commit précédent sont abandonnés. Forcer
l'inclusion de ces commits utilise --keep-redundant-commits.
--allow-vide-message
Par défaut, la sélection d'un commit avec un message vide échouera. Cette option
remplace ce comportement, permettant aux commits avec des messages vides d'être sélectionnés.
--keep-redundant-commits
Si un commit en cours de sélection duplique un commit déjà dans l'historique actuel, il
deviendra vide. Par défaut, ces commits redondants provoquent l'arrêt de cherry-pick afin que le
l'utilisateur peut examiner le commit. Cette option remplace ce comportement et crée un
commit objet. Implique --allow-empty.
--stratégie=
Utilisez la stratégie de fusion donnée. Ne doit être utilisé qu'une seule fois. Voir les STRATÉGIES DE FUSION
section git-merge(1) pour plus de détails.
-X , --strategy-option=
Transmettez l'option spécifique à la stratégie de fusion à la stratégie de fusion. Voir git-
fusionner(1) pour plus de détails.
SÉQUENCEUR SOUS-COMMANDES
--Continuez
Poursuivez l'opération en cours à l'aide des informations de .git/séquenceur. Peut être
utilisé pour continuer après la résolution des conflits lors d'un échec de sélection ou de retour.
--quitter
Oubliez l'opération en cours. Peut être utilisé pour effacer le séquenceur
état après un échec de sélection ou de retour.
--avorter
Annulez l'opération et revenez à l'état de pré-séquence.
EXEMPLES
maître de la sélection des cerises git
Appliquez le changement introduit par le commit à la pointe de la branche master et créez un
nouveau commit avec ce changement.
git cherry-pick ..maître, git cherry-pick ^HEAD maître
Appliquer les changements introduits par tous les commits qui sont des ancêtres de master mais pas de
HEAD pour produire de nouveaux commits.
git cherry-pick maint suivant ^maître, git cherry-pick maint maître..suivant
Appliquer les modifications introduites par tous les commits qui sont les ancêtres de maint ou next, mais
pas maître ni aucun de ses ancêtres. Notez que ce dernier ne signifie pas maintenir et
tout entre le maître et le suivant ; en particulier, maint ne sera pas utilisé s'il est
inclus dans le maître.
git maître de sélection de cerises ~ 4 maître ~ 2
Appliquer les modifications introduites par les cinquième et troisième derniers commits pointés par le maître
et créez 2 nouveaux commits avec ces changements.
git cherry-pick -n master~1 suivant
Appliquer à l'arbre de travail et à l'index les modifications introduites par l'avant-dernier
commit pointé par master et par le dernier commit pointé par next, mais ne
créer un commit avec ces modifications.
git cherry-pick --ff ..suivant
Si l'historique est linéaire et HEAD est un ancêtre de next, mettez à jour l'arbre de travail et
avancez le pointeur HEAD pour faire correspondre le suivant. Sinon, appliquez les changements introduits par
ces commits qui sont dans next mais pas HEAD dans la branche actuelle, créant un nouveau
commit pour chaque nouveau changement.
git rev-list --reverse master -- LISEZMOI | git cherry-pick -n --stdin
Appliquer les modifications introduites par tous les commits sur la branche master qui a touché README
à l'arbre de travail et à l'index, afin que le résultat puisse être inspecté et transformé en un seul
nouveau commit si approprié.
La séquence suivante tente de rétroporter un correctif, se sauve car le code du correctif
s'applique à a trop changé, puis réessaye, cette fois en faisant plus attention
sur la correspondance des lignes de contexte.
$ git sujet de sélection de cerises ^ (1)
$ git diff (2)
$ git réinitialiser --merge ORIG_HEAD (3)
$ git cherry-pick -sujet Xpatience^ (4)
1. appliquer le changement qui serait affiché par git show topic^. Dans cet exemple, le patch
ne s'applique pas proprement, donc les informations sur le conflit sont écrites dans l'index et
arbre de travail et aucun nouveau résultat de validation.
2. résumer les changements à réconcilier
3. annuler la cueillette. En d'autres termes, revenir à l'état d'avant la cueillette, en préservant
toutes les modifications locales que vous aviez dans l'arbre de travail.
4. essayez d'appliquer à nouveau le changement introduit par le sujet^, en passant plus de temps pour éviter
erreurs basées sur des lignes de contexte qui ne correspondent pas correctement.
Utilisez git-cherry-pick en ligne en utilisant les services onworks.net