Il s'agit de la commande git-cherry 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 - Trouver les commits à appliquer en amont
SYNOPSIS
jet cerise [-v] [ [ [ ]]]
DESCRIPTION
Déterminer s'il y a des commits dans .. qui sont équivalents à ceux de
la gamme .. .
Le test d'équivalence est basé sur le diff, après avoir supprimé les espaces et les numéros de ligne.
git-cherry détecte donc quand les commits ont été « copiés » au moyen de git-cerise-
en particulier pendant la préparation(1), git-suis(1) ou git-rebase (1).
Affiche le SHA1 de chaque commit dans .. , préfixé par - pour les commits qui ont
un équivalent en , et + pour les commits qui ne le font pas.
OPTIONS
-v
Affichez les sujets de commit à côté des SHA1.
Branche en amont pour rechercher des commits équivalents. Par défaut, la branche amont de
DIRIGER.
Branche de travail ; par défaut HEAD.
Ne signalez pas les commits jusqu'à (et y compris) la limite.
EXEMPLES
Pièce workflows
git-cherry est fréquemment utilisé dans les workflows basés sur des correctifs (voir gitworkflows(7)) pour déterminer
si une série de correctifs a été appliquée par le mainteneur en amont. Dans un tel flux de travail, vous
pourrait créer et envoyer une branche thématique comme celle-ci :
$ git checkout -b sujet origine/maître
# travailler et créer des commits
$ git format-correctif origine/maître
$ git envoyer-e-mail ... 00*
Plus tard, vous pourrez voir si vos modifications ont été appliquées en disant (toujours dans le sujet) :
$ git fetch # met à jour votre notion d'origine/maître
$ git cerise -v
Défaut (ici)
Dans une situation où le sujet consistait en trois commits et le mainteneur en appliquait deux
eux, la situation pourrait ressembler à :
$ git log --graph --oneline --decorate --boundary origin/master...sujet
* 7654321 (origine/maître) commit de pointe en amont
[... coupez d'autres commits ...]
* cccc111 cueillette de C
* aaaa111 sélection de A
[... coupez beaucoup plus de ce qui s'est passé ...]
| * cccc000 (sujet) commit C
| * bbbb000 commit B
| * aaaa000 commit A
|/
o 1234567 embranchement
Dans de tels cas, git-cherry affiche un résumé concis de ce qui n'a pas encore été appliqué :
$ git cherry origin/sujet principal
- cccc000... valider C
+ bbbb000... valider B
- aaaa000... valider A
Ici, nous voyons que les commits A et C (marqués avec -) peuvent être supprimés de votre sujet
branche lorsque vous le rebasez sur origin/master, tandis que le commit B (marqué d'un +)
doit encore être conservé pour qu'il soit envoyé pour être appliqué à origin/master.
En utilisant a limite
L'optionnel est utile dans les cas où votre sujet est basé sur d'autres travaux
pas en amont. En développant l'exemple précédent, cela pourrait ressembler à :
$ git log --graph --oneline --decorate --boundary origin/master...sujet
* 7654321 (origine/maître) commit de pointe en amont
[... coupez d'autres commits ...]
* cccc111 cueillette de C
* aaaa111 sélection de A
[... coupez beaucoup plus de ce qui s'est passé ...]
| * cccc000 (sujet) commit C
| * bbbb000 commit B
| * aaaa000 commit A
| * 0000fff (base) trucs inédits F
[... coupez ...]
| * 0000aaa trucs inédits A
|/
o 1234567 merge-base entre l'amont et le sujet
En spécifiant base comme limite, vous pouvez éviter de lister les commits entre la base et le sujet :
$ git cerise origine/base de sujet principale
- cccc000... valider C
+ bbbb000... valider B
- aaaa000... valider A
Utilisez git-cherry en ligne en utilisant les services onworks.net