Question

J'ai deux branches: maître et dev

Je veux créer une "branche de fonction" de la branche dev .

À l'heure actuelle sur la branche dev, je fais:

$ git checkout -b myfeature dev

... (un travail)

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

Mais, après avoir visualisé mes branches, je me suis:

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

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

Qu'est-ce que je fais mal?

Pouvez-vous me expliquer comment vous s'il vous plaît bifurquer d'une autre branche et pousser vers le dépôt distant pour la branche de fonction?

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

Était-ce utile?

La solution

Si vous aimez la méthode dans le lien que vous avez posté, consultez la page Git flux .

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

Mais pour répondre à votre question:

$ git checkout -b myFeature dev

Crée branche MyFeature hors dev. Faites votre travail et

$ git commit -am "Your message"

Maintenant fusionner vos modifications dev sans avance rapide

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

Maintenant les modifications au serveur

$ git push origin dev
$ git push origin myFeature

Et vous le verrez comment vous le voulez.

Autres conseils

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

Premier changement / caisse dans la branche où vous voulez créer une nouvelle branche. Par exemple, si vous avez les branches suivantes comme:

  • maître
  • dev
  • Branch1

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

  1. Commander ou changement dans "Branch1"

    git checkout branch1
    
  2. Maintenant, créez votre nouvelle branche appelée "subbranch_of_b1" sous la "Branch1" en utilisant la commande suivante.

    git checkout -b subbranch_of_b1 branch1
    

    Le ci-dessus va créer une nouvelle branche appelée subbranch_of_b1 sous la branche Branch1 (notez que branch1 dans la commande ci-dessus n'est pas obligatoire puisque la tête pointe actuellement il , vous pouvez le préciser si vous êtes sur une autre branche cependant).

  3. après avoir travaillé avec subbranch_of_b1 vous pouvez vous engager et pousser ou fusionner localement ou à distance.

 Un échantillon Illustration graphique de création branches sous une autre Direction générale

pousser la subbranch_of_b1 à distance

 git push origin subbranch_of_b1 

Créer une branche

  • Créer branche lorsque la branche principale est extrait. Ici commits en maître seront synchronisés à la branche que vous avez créé.

    $ git branch branch1

  • Créer branche quand Branch1 est extrait. Ici commits à Branch1 seront synchronisés à succursale2

    $ git branch branch2


Commander une branche

branches de commutation de commande de git checkout ou restaurer des fichiers de travail d'arbres

  • $ git checkout branchname

Modification du nom d'une branche

  • $ git branch -m branch1 newbranchname

Supprimer une branche

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

Créer et Direction du commutateur

  • $ git checkout -b branchname

Branches qui sont complètement inclus

  • $ git branch --merged


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

différence multiligne
  • $ git diff master..branch1
différence Singleline
  • $ git diff --color-words branch1..branch2

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

Maintenant, si vous faites un COMMIT dev, avant de fusionner, vous recommencera à la commettre, A, mais dispose désormais ira à C et dev à B. Cela montrera la division que vous essayez de visualiser, comme les branches ont maintenant divergé.

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

Versus

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

git switch et git restore pour diviser les responsabilités de git checkout

Création d'une nouvelle branche d'une branche existante de git 2.23:

git switch -c my-new-branch

Switched à une nouvelle branche ma nouvelle branche '

  • -c est l'abréviation de - créer et remplace le bien connu git checkout -b

Jetez un oeil à ce blog Github expliquant les changements plus en détail:

  

Git 2.23 apporte une nouvelle paire de commandes expérimentales à la suite d'exister   les: commutateur git et git restaurer . Ces deux sont destinés, à terme,   fournir une meilleure interface pour la caisse git bien connu. Le nouveau   commandes intention d'avoir chacun une séparation claire, d'une manière ordonnée jusqu'à divvying   ce que les nombreuses responsabilités de git checkout

Si vous voulez faire une branche d'une autre branche puis suivez les étapes ci-dessous:

Hypothèses :

  1. Vous êtes actuellement dans la branche principale.
  2. Vous avez aucun changement à commettre. (Si vous avez des modifications pour appliquer, planquer!).
  3. BranchExisting est le nom de la branche à partir de laquelle vous devez faire une nouvelle branche avec le nom BranchMyNew.

étapes :

  1. Fetch la branche à votre machine locale.

    $ git fetch origin BranchExisting : BranchExisting
    

Cette commande va créer une nouvelle branche dans votre région avec le même nom de branche.

  1. , de la caisse de la branche principale à la branche nouvellement récupérée

    $ git checkout BranchExisting
    
  2. Vous êtes maintenant dans BranchExisting. Maintenant, créez une nouvelle branche de cette branche existante.

    $ git checkout -b BranchMyNew
    

Ici, vous allez!

Pour la création d'une branche d'un autre peut utiliser cette syntaxe ainsi:

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

Il est un peu plus court que "git checkout -b" + "push origin git"

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top