Créer une branche Git d'une autre branche
J'ai deux branches: maître et dev
Je veux créer une "branche" de la dev branche.
Actuellement sur la branche dev, je n':
$ git checkout -b myfeature dev
... (certains travaux)
$ git commit -am "blablabla"
$ git push origin myfeature
Mais, après la visualisation de mes branches, j'ai eu:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Je veux dire que la direction semble ff fusionné, et je ne comprends pas pourquoi...
Ce que je fais mal?
Pouvez-vous m'expliquer s'il vous plaît comment vous branche d'une autre branche, et pousser vers le dépôt distant pour la branche?
Tous que, dans les branches comme celui décrit ici.
Vous devez vous connecter pour publier un commentaire.
Si vous aimez la méthode dans le lien que vous avez posté, avoir un regard sur Git Flow.
C'est un ensemble de scripts qu'il a créé pour que le flux de travail.
Mais pour répondre à votre question:
Crée MyFeature branche de dev. Faites votre travail, et puis
Maintenant fusionner vos modifications de dev sans un fast-forward
Maintenant pousser les modifications sur le serveur
Et vous verrez comme vous le souhaitez.
myFeature
après qu'il a été fusionné witdev
?myFeature
de la succursale, a été poussé vers le serveur avant de les fusionner, puis plus rien. Mais simyFeature
n'est pas encore poussé vers le serveur et que vous voulez qu'il apparaisse dans le serveur, vous devez pousser à l'appart.git checkout -b myFeature dev
le même que ces 3 commandes:git checkout dev
, puisgit branch myFeature
, puisgit checkout myFeature
?dev
&feature
? ne devriez-vous pas pousser juste après l'étape 3, et doit être fait? Vous n'avez pas tous la nouvelle fonctionnalité de code que vous avez besoin fusionné?dev
que la branche par défaut de l'endroit où je veux créer les autres, la suppression de la nécessité de la dernière param dansgit checkout -b newBranch dev
, rendantgit checkout -b newBranch
?--no-ff
de fusion ressembleorigin/dev
, elle n'est pas hors dedev
.Si vous voulez créer une nouvelle branche à partir de l'une des branches existantes dans Git, il suffit de suivre les options.
Premier changement/checkout dans la branche de l'endroit où vous souhaitez créer une nouvelle branche. Par exemple, si vous avez les branches suivantes comme:
Donc, si vous voulez créer une nouvelle branche appelée "subbranch_of_b1" en vertu de la branche nommée "branch1" suivre les étapes suivantes:
Contrôle ou de changement dans "branch1"
Maintenant créer votre nouvelle branche appelée "subbranch_of_b1" en vertu de la "branch1" à l'aide de la commande suivante.
Ci-dessus va créer une nouvelle branche appelée subbranch_of_b1 sous la direction de branch1 (notez que
branch1
dans la commande ci-dessus n'est pas obligatoire étant donné que la TÊTE est actuellement le montrant du doigt, vous pouvez préciser si vous êtes sur une autre branche, quoique).Maintenant, après avoir travaillé avec la subbranch_of_b1 que vous pouvez vous engager et de le pousser ou de le fusionner localement ou à distance.
pousser la subbranch_of_b1 à distance
git checkout -b some-branch
est un raccourci pourgit checkout -b some-branch master
. Il s'avère quegit checkout -b some-branch
est un raccourci pourgit checkout -b some-branch <current_active_branch>
git push origin subbranch_of_b1
est exactement ce que l'OP a dit qu'ils ont déjà fait. Cette réponse est incomplet, car il ne traite pas de la façon de pousser sans ff fusion.Créer une Branche
$ git branch branch1
$ git branch branch2
Commander une Branche
git checkout commutateur de commande de succursales ou de restauration de travail de l'arborescence de fichiers
$ git checkout branchname
Renommer une Branche
$ git branch -m branch1 newbranchname
Supprimer une Branche
$ git branch -d branch-to-delete
$ git branch -D branch-to-delete
( forcer la suppression sans vérification de la fusion de statut )
De créer et de Commutateur de Direction
$ git checkout -b branchname
Branches qui sont entièrement inclus
$ git branch --merged
************************** Direction générale des Différences [ git diff branch1..(sesc) 2] ************************
Multiligne différence
$ git diff master..branch1
Singleline différence
$ git diff --color-words branch1..branch2
git push origin :old-name new-name
pour supprimer l'ancien nom de la branche distante et poussez le nouveau nom de la section locale.Faire le travail simultané sur le
dev
branche. Ce qui se passe est que, dans votre scénario de la branche se déplace vers l'avant à partir de l'extrémité 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 un mouvement vers l'avant. Vous l'avez fait à Un point sur dev, et à partir de là vous simplement continué sur un chemin parallèle. Les deux branches ne sont pas vraiment différente.Maintenant, si vous faites un commit sur dev, avant la fusion, vous allez commencer de nouveau à la même livraison, d'Une, mais maintenant fonctionnalités d'aller à C et dev à B. Cela permettra de montrer split vous essayez de visualiser, comme les branches ont maintenant divergé.
Contre
Git 2.23 présente
git switch
etgit restauration
de diviser les responsabilités degit checkout
Création d'une nouvelle branche à partir d'une branche de git 2.23:
git switch -c my-new-branch
Passé à une nouvelle branche mon-nouveau-branche"
Prendre un coup d'oeil à cette Github billet de blog expliquant les changements en détail:
Si vous voulez faire une branche de quelque autre branche puis suivez soufflet suit:
Hypothèses:
BranchExisting
est le nom de la branche à partir de laquelle vous avez besoin de faire une nouvelle branche avec le nomBranchMyNew
.Étapes:
Récupérer la branche à votre ordinateur local.
Cette commande va créer une nouvelle branche dans vos locaux avec le même nom de la branche.
Maintenant, à partir de la branche principale de caisse de la nouvelle extraite de la branche
Vous êtes maintenant en BranchExisting. Maintenant, créez une nouvelle branche à partir de cette branche.
Ici vous allez!
Pour la création d'une branche de l'autre, on peut utiliser cette syntaxe:
C'est un peu plus court que "git checkout -b" + "git push origin "