Opret en gren i Git fra en anden gren
Jeg har to grene: master og dev
Jeg ønsker at oprette en "feature branch" fra dev-grenen.
I øjeblikket på grenen dev, jeg gør:
$ git checkout -b myfeature dev
... (noget arbejde)
$ git commit -am "blablabla"
$ git push origin myfeature
Men efter at have visualiseret mine grene, fik jeg:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Jeg mener, at grenen ser ud til at være ff merged, og jeg forstår ikke hvorfor...
Hvad jeg'gør forkert?
Kan du forklare mig venligst, hvordan du gren ud fra en anden gren og push tilbage til det eksterne repository for feature-grenen?
Alt dette i en branching-model som den, der er beskrevet her.
839
3
Hvis du kan lide metoden i det link, du har sendt, kan du kigge på Git Flow.
Det er et sæt scripts, som han har lavet til denne arbejdsgang.
Men for at besvare dit spørgsmål:
Opretter MyFeature gren fra dev. Gør dit arbejde og derefter
Flet nu dine ændringer til dev uden en hurtig fremføring
Skub nu ændringer til serveren
Og du vil se det, som du vil have det.
Hvis du vil oprette en ny gren fra en af de eksisterende grene i Git, skal du blot følge indstillingerne.
Først skal du ændre/checke ud i den gren, hvorfra du vil oprette en ny gren. Hvis du f.eks. har følgende grene som f.eks:
Så hvis du ønsker at oprette en ny filial kaldet "subbranch_of_b1" under filialen med navnet "branch1", skal du følge nedenstående trin:
Check ud eller skift til "branch1"
Opret nu din nye gren ved navn "subbranch_of_b1" under "branch1" ved hjælp af følgende kommando.
Ovenstående vil oprette en ny gren kaldet subbranch_of_b1 under grenen branch1 (bemærk, at
branch1
i ovenstående kommando ikke er obligatorisk, da HEAD peger på den i øjeblikket, du kan dog præcisere det, hvis du er på en anden gren).Når du nu har arbejdet med subbranch_of_b1, kan du commit og push eller merge den lokalt eller eksternt.
skub undergren_af_b1 til fjernbetjening
Arbejder samtidig på grenen
dev
. I dit scenarie sker det, at feature-grenen bevæger sig fremad fra spidsen af dev-grenen, men dev-grenen ændres ikke. Det er lettere at tegne som en lige linje, fordi det kan opfattes som en fremadrettet bevægelse. Du nåede frem til punkt A på dev, og derfra fortsatte du blot på en parallel vej. De to grene har ikke rigtig divergeret.Hvis du nu laver et commit på dev, før du fusionerer, vil du igen begynde ved det samme commit, A, men nu vil features gå til C og dev til B. Dette vil vise den opdeling, du forsøger at visualisere, da grenene nu er divergeret.
Versus