Question Créer une branche dans Git à partir d'une autre branche


J'ai deux branches: maîtriser et dev

Je veux créer une "branche de fonctionnalité" à partir du dev branche.

Actuellement sur la branche dev, je fais:

$ git checkout -b myfeature dev

... (certains travaux)

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

Mais, après avoir visualisé mes branches, j'ai:

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

Je veux dire que la branche semble ff fusionnée, et je ne comprends pas pourquoi ...

Qu'est-ce que je fais mal?

Pouvez-vous m'expliquer s'il vous plaît comment vous branchez d'une autre branche et repoussez-vous dans le dépôt distant pour la branche de fonctionnalité?

Tout cela dans un modèle de branchement comme celui décrit ici.


574
2017-12-17 12:39


origine


Réponses:


Si vous aimez la méthode dans le lien que vous avez posté, jetez un oeil à Git Flow.

C'est un ensemble de scripts qu'il a créés pour ce flux de travail.

Mais pour répondre à ta question:

$ git checkout -b myFeature dev

Crée une branche MyFeature à partir de dev. Faites votre travail et ensuite

$ git commit -am "Your message"

Maintenant, fusionnez vos modifications en dev sans avance rapide

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

modifier

Maintenant, appuyez sur les modifications apportées au serveur

$ git push origin dev
$ git push origin myFeature

Et vous verrez comment vous le voulez.


824
2017-12-17 13:23



Si vous voulez créer une nouvelle branche à partir de l'une des branches existantes dans Git, il suffit de suivre les options.

Première modification / extraction dans la branche à partir de laquelle vous souhaitez créer une nouvelle branche. Par exemple, si vous avez les branches suivantes:

  • maîtriser
  • dev
  • branche1

Donc, si vous voulez créer une nouvelle branche appelée "subbranch_of_b1" sous la branche nommée "branche1" suis les étapes:

  1. Commander ou changer en "branche1"

    git checkout branch1
    
  2. Créez maintenant votre nouvelle branche appelée "subbranch_of_b1" sous le "branche1" en utilisant la commande suivante.

    git checkout -b subbranch_of_b1 branch1
    

    Ce qui précède va créer une nouvelle branche appelée subbranch_of_b1 sous la branche branche1 (Notez que branch1 dans la commande ci-dessus n'est pas obligatoire puisque le HEAD pointe actuellement dessus, vous pouvez le préciser si vous êtes sur une branche différente).

  3. Maintenant, après avoir travaillé avec le subbranch_of_b1 vous pouvez commettre et pousser ou fusionner localement ou à distance.

A sample Graphical Illustration Of Creating Branches Under another Branch


210
2017-09-04 07:00



Créer une succursale

  • Créer une branche lorsque la branche principale est extraite. Ici, les validations dans master seront synchronisées avec la branche que vous avez créée.

    $ git branch branch1

  • Créer une branche lorsque la branche 1 est extraite. Ici, les validations dans la branche 1 seront synchronisées avec la branche 2

    $ git branch branch2


Commander une succursale

git checkout command passer des branches ou restaurer des fichiers d'arbre de travail

  • $ git checkout branchname

Renommer une succursale

  • $ git branch -m branch1 newbranchname

Supprimer une succursale

  • $ git branch -d branch-to-delete
  • $ git branch -D branch-to-delete ( forcer la suppression sans vérifier l'état fusionné )

Créer et changer de branche

  • $ git checkout -b branchname

Branches qui sont complètement incluses

  • $ git branch --merged


************************* Différences de branche [git diff branch1..branch2] ************************

Différence multiligne
  • $ git diff master..branch1
Différence singulière
  • $ git diff --color-words branch1..branch2

16
2017-12-08 18:13



Faire un travail simultané sur dev branche. Ce qui se passe est que dans votre scénario, la branche de fonctionnalité avance de la pointe de la branche de développement, mais la branche de développement ne change pas. Il est plus facile de dessiner en ligne droite, car cela peut être considéré comme un mouvement vers l'avant. Vous l'avez fait au point A sur Dev, et à partir de là vous avez simplement continué sur un chemin parallèle. Les deux branches n'ont pas vraiment divergé.

Maintenant, si vous faites un commit sur dev, avant de fusionner, vous recommencerez au même commit, A, mais maintenant les fonctionnalités iront à C et dev à B. Cela montrera le split que vous essayez de visualiser, comme les branches ont maintenant divergé.

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

Contre

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

10
2017-12-05 14:46



git checkout branchName

Commuté sur une autre branche "branchName"


-4
2018-05-16 13:48