Domanda

Ho due rami: Master e dev

Voglio creare un "ramo di caratteristica" dalla dev ramo.

Attualmente sul dev ramo, lo faccio:

$ git checkout -b myfeature dev

... (un po 'di lavoro)

$ git commit -am "blablabla"
$ git push origin myfeature

Ma, dopo la visualizzazione miei rami, ho ottenuto:

--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**

voglio dire che il ramo sembra ff fuse, e non capisco perché ...

Quello che sto facendo di sbagliato?

Mi può spiegare per favore come si dipartono da un altro ramo e spingere indietro al repository remoto per il ramo funzione?

Tutto ciò in un modello di ramificazione come quello descritto qui .

È stato utile?

Soluzione

Se ti piace il metodo nel link che hai postato, dare un'occhiata al Git flusso .

Si tratta di una serie di script che ha creato per questo flusso di lavoro.

Ma per rispondere alla tua domanda:

$ git checkout -b myFeature dev

Crea ramo MyFeature off dev. Fate il vostro lavoro e quindi

$ git commit -am "Your message"

Ora unire le modifiche a dev senza un fast-forward

$ git checkout dev
$ git merge --no-ff myFeature

Ora spingere le modifiche al server

$ git push origin dev
$ git push origin myFeature

E lo vedrai come si desidera.

Altri suggerimenti

Se si desidera creare un nuovo ramo da una qualsiasi delle filiali esistenti in Git, basta seguire le opzioni.

Prima sostituzione / checkout nel ramo da cui si desidera creare un nuovo ramo. Per esempio, se avete i seguenti settori come:

  • Master
  • dev
  • Branch1

Quindi, se si desidera creare un nuovo ramo chiamato "subbranch_of_b1" sotto il ramo denominato "Branch1" seguire la procedura:

  1. Checkout o cambiamento in "Branch1"

    git checkout branch1
    
  2. Ora creare il nuovo ramo chiamato "subbranch_of_b1" sotto la "Branch1" utilizzando il seguente comando.

    git checkout -b subbranch_of_b1 branch1
    

    Il precedente creerà un nuovo ramo chiamato subbranch_of_b1 sotto il ramo Branch1 (nota che branch1 nel comando di cui sopra non è obbligatoria Poiché la testina sta puntando ad essa , è possibile precisa, se siete su un ramo diverso però).

  3. Ora, dopo aver lavorato con il subbranch_of_b1 si può commettere e spingere o fondere localmente o in remoto.

 una rappresentazione grafica del campione di creazione di rami sotto un altro ramo

spingere il subbranch_of_b1 a remoto

 git push origin subbranch_of_b1 

Crea un ramo

  • Crea ramo quando branch master è stato estratto. Qui si impegna in master saranno sincronizzati al ramo si è creato.

    $ git branch branch1

  • Crea ramo quando Branch1 è stato estratto. Qui si impegna a Branch1 saranno sincronizzati per Branch2

    $ git branch branch2


Acquista un ramo

git checkout rami degli interruttori di comando o ripristinare i file di lavoro albero

  • $ git checkout branchname

La ridenominazione di un ramo

  • $ git branch -m branch1 newbranchname

Elimina un ramo

  • $ git branch -d branch-to-delete
  • $ git branch -D branch-to-delete ( forza di eliminazione senza il controllo dello stato fusione )

Crea e interruttore Branch

  • $ git checkout -b branchname

rami che sono completamente inclusi

  • $ git branch --merged


************************** Differenze Branch [git diff branch1..branch2] **** ********************

differenza Multiline
  • $ git diff master..branch1
differenza SingleLine
  • $ git diff --color-words branch1..branch2
lavoro simultaneo

Do sul ramo dev. Quello che succede è che nello scenario le funzionalità di ramo si muove avanti dalla punta del ramo dev, ma il ramo dev non cambia. E 'più facile per disegnare come una linea retta, perché può essere pensato come movimento in avanti. Sei arrivato al punto AL dev, e da lì è sufficiente continuato su un percorso parallelo. I due rami non hanno realmente discostato.

Ora, se si effettua un commit sul dev, prima della fusione, si ricominceranno allo stesso commit, A, ma ora dispone andrà a C e dev per B. Questo mostrerà la spaccatura che si sta tentando di visualizzare, come i rami hanno ormai discostato.

*-----*Dev-------*Feature

Versus

       /----*DevB
*-----*DevA
       \----*FeatureC

Git 2.23 introduce git switch e git restore per dividere le responsabilità di git checkout

Creazione di un nuovo ramo da un ramo esistente come di git 2.23:

git switch -c my-new-branch

passato a un nuovo ramo 'il mio nuovo ramo'

  • -c è l'abbreviazione di - creare e sostituisce il noto git checkout -b

Date un'occhiata al questo Github blog post che spiega i cambiamenti in modo dettagliato:

Git 2.23 porta un nuovo paio di comandi sperimentali alla suite di esistere quelli: interruttore git e GIT ripristinare . Questi due sono destinati alla fine fornire una migliore interfaccia per il noto cassa git. Il nuovo comandi intenda hanno ciascuno una separazione netta, ordinatamente divvying quali sono le molte responsabilità di git checkout

Se si vuole fare un ramo da un po 'di un altro ramo quindi seguire muggito passi:

Ipotesi :

  1. You are currently in branch master.
  2. Non ci sono cambiamenti per commettere. (In caso di modifiche a commettere, riporre esso!).
  3. BranchExisting è il nome del ramo da cui è necessario fare una nuova filiale con il nome BranchMyNew.

Passi :

  1. Scarica il ramo sulla macchina locale.

    $ git fetch origin BranchExisting : BranchExisting
    

Questo comando creerà una nuova filiale nel vostro locale con lo stesso nome del ramo.

  1. Ora, dal ramo principale cassa al ramo di recente recuperato

    $ git checkout BranchExisting
    
  2. Si è ora in BranchExisting. Ora creare un nuovo ramo da questo ramo esistente.

    $ git checkout -b BranchMyNew
    

Ecco a te!

Per la creazione di un ramo da un altro si può usare questa sintassi così:

git push origin refs/heads/<sourceBranch>:refs/heads/<targetBranch>

E 'un po' più corto "git checkout -b" + "push origin git"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top