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.
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.
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:
Donc, si vous voulez créer une nouvelle branche appelée "subbranch_of_b1" sous la branche nommée "branche1" suis les étapes:
Commander ou changer en "branche1"
git checkout branch1
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).
Maintenant, après avoir travaillé avec le subbranch_of_b1 vous pouvez commettre et pousser ou fusionner localement ou à distance.

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
************************* 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
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
git checkout branchName
Commuté sur une autre branche "branchName"