git-cherry(1): Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '{{manpage|section=1|title=git-cherry}} == NAMN == git-cherry - Hitta commits som ännu inte har tillämpats på uppström == SYNOPSIS == '''git cherry''' [-v] [<uppström> [<huvud> [<gräns>]]] == BESKRIVNING == Avgör om det finns commits i ''<huvud>''..''<uppström>'' som är ekvivalenta med de i intervallet ''<gräns>''..''<huvud>''. Ekvivalenstestet baseras på diffen, efter att ha tagit bort blanksteg och radnummer. git-cherry upptäcker därför när commits ha...')
 
Ingen redigeringssammanfattning
 
Rad 1: Rad 1:
{{manpage|section=1|title=git-cherry}}
== NAMN ==
== NAMN ==
git-cherry - Hitta commits som ännu inte har tillämpats på uppström
git-cherry - Hitta commits som ännu inte har tillämpats på uppström

Nuvarande version från 10 april 2025 kl. 06.41

NAMN

git-cherry - Hitta commits som ännu inte har tillämpats på uppström

SYNOPSIS

git cherry [-v] [<uppström> [<huvud> [<gräns>]]]

BESKRIVNING

Avgör om det finns commits i <huvud>..<uppström> som är ekvivalenta med de i intervallet <gräns>..<huvud>.

Ekvivalenstestet baseras på diffen, efter att ha tagit bort blanksteg och radnummer. git-cherry upptäcker därför när commits har "kopierats" med hjälp av git-cherry-pick(1), git-am(1) eller git-rebase(1).

Skriver ut SHA1 för varje commit i <gräns>..<huvud>, prefixerad med - för commits som har en ekvivalent i <uppström>, och + för commits som inte har det.

ALTERNATIV

  • -v
Visa commit-ämnena bredvid SHA1:orna.
  • <uppström>
Uppströmsgren att söka efter ekvivalenta commits i. Standardvärdet är
  uppströmsgrenen för HEAD.
  • <huvud>
Arbetsgren; standardvärdet är HEAD.
  • <gräns>
Rapportera inte commits upp till (och inklusive) gränsen.

EXEMPEL

Arbetsflöden med patchar

git-cherry används ofta i patchbaserade arbetsflöden (se gitworkflows(7)) för att avgöra om en serie patchar har tillämpats av uppströmsunderhållaren. I ett sådant arbetsflöde kan du skapa och skicka en ämnesgren så här:

     $ git checkout -b topic origin/master
     # arbeta och skapa några commits
     $ git format-patch origin/master
     $ git send-email ... 00*

Senare kan du se om dina ändringar har tillämpats genom att säga (fortfarande på topic):

     $ git fetch  # uppdatera din uppfattning om origin/master
     $ git cherry -v

Konkret exempel

I en situation där topic bestod av tre commits, och underhållaren tillämpade två av dem, kan situationen se ut så här:

     $ git log --graph --oneline --decorate --boundary origin/master...topic
     * 7654321 (origin/master) upstream tip commit
     [... klipp bort några andra commits ...]
     * cccc111 cherry-pick of C
     * aaaa111 cherry-pick of A
     [... klipp bort mycket mer som har hänt ...]
     | * cccc000 (topic) commit C
     | * bbbb000 commit B
     | * aaaa000 commit A
     |/
     o 1234567 branch point

I sådana fall visar git-cherry en kort sammanfattning av vad som ännu inte har tillämpats:

     $ git cherry origin/master topic
     - cccc000... commit C
     + bbbb000... commit B
     - aaaa000... commit A

Här ser vi att commits A och C (markerade med -) kan tas bort från din topic gren när du rebaserar den ovanpå origin/master, medan commit B (markerad med +) fortfarande behöver behållas så att den kommer att skickas för att tillämpas på origin/master.

Använda en gräns

Det valfria <gräns> är användbart i fall där ditt ämne baseras på annat arbete som inte finns i uppström. Utökar vi det tidigare exemplet kan det se ut så här:

     $ git log --graph --oneline --decorate --boundary origin/master...topic
     * 7654321 (origin/master) upstream tip commit
     [... klipp bort några andra commits ...]
     * cccc111 cherry-pick of C
     * aaaa111 cherry-pick of A
     [... klipp bort mycket mer som har hänt ...]
     | * cccc000 (topic) commit C
     | * bbbb000 commit B
     | * aaaa000 commit A
     | * 0000fff (base) unpublished stuff F
     [... klipp ...]
     | * 0000aaa unpublished stuff A
     |/
     o 1234567 merge-base between upstream and topic

Genom att ange base som gräns kan du undvika att lista commits mellan base och topic:

     $ git cherry origin/master topic base
     - cccc000... commit C
     + bbbb000... commit B
     - aaaa000... commit A

SE ÄVEN

git-patch-id(1)

GIT

Del av git(1)-sviten

KOLOFON

Den här sidan är en del av projektet git (Git distribuerat versionshanteringssystem). Information om projektet finns på <⟨http://git-scm.com/⟩>. Om du har en felrapport för den här manualsidan, se <⟨http://git-scm.com/community⟩>. Den här sidan hämtades från projektets uppströms Git-arkiv <⟨https://github.com/git/git.git⟩> den 2025-02-02. (Vid den tidpunkten var datumet för den senast hittade commiten i arkivet 2025-01-31.) Om du upptäcker några renderingsproblem i den här HTML-versionen av sidan, eller om du tror att det finns en bättre eller mer aktuell källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i den här KOLOFONEN (som *inte* är en del av den ursprungliga manualsidan), skicka ett e-postmeddelande till man-pages@man7.org

Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/gencnval.1.html


Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.