J'ai deux branches: master et dev
Je veux de la créer une « branche de fonctionnalité » 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 eu:
--**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 comment vous dérivez d'une autre branche et repoussez vers le référentiel distant pour la branche de fonctionnalité?
Tout cela dans un modèle de branchement comme celui décrit ici .
la source
myFeature
après qu'il a été fusionné avec l'espritdev
?myFeature
branche a été poussée sur le serveur avant la fusion, alors rien. Mais s'ilmyFeature
n'est pas encore poussé vers le serveur et que vous souhaitez qu'il apparaisse sur le serveur, vous devez le pousser à part.git checkout -b myFeature dev
le même que ces 3 commandes:,git checkout dev
puisgit branch myFeature
, et ensuitegit checkout myFeature
?--no-ff
Si vous souhaitez créer une nouvelle branche à partir de l'une des branches existantes dans Git, suivez simplement les options.
Commencez par changer / passer à la succursale à partir de laquelle vous souhaitez créer une nouvelle succursale. Par exemple, si vous avez les branches suivantes comme:
Donc, si vous voulez créer une nouvelle branche appelée "subbranch_of_b1" sous la branche nommée "branch1", suivez les étapes:
Commander ou changer en "branche1"
Créez maintenant votre nouvelle branche appelée "subbranch_of_b1" sous la "branche1" en utilisant la commande suivante.
Ce qui précède créera 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 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 le valider et le pousser ou le fusionner localement ou à distance.
pousser le subbranch_of_b1 à distance
la source
git checkout -b some-branch
c'était un raccourcigit checkout -b some-branch master
. Il s'avère quegit checkout -b some-branch
c'est un raccourci pourgit checkout -b some-branch <current_active_branch>
Créer une branche
$ git branch branch1
$ git branch branch2
Commander une succursale
git checkout command change de branche ou restaure des fichiers d'arborescence de travail
$ git checkout branchname
Renommer une succursale
$ 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érifier le statut fusionné )Créer et changer de branche
$ git checkout -b branchname
Branches complètement incluses
$ git branch --merged
************************** Différences de branche [git diff branch1..branch2] ************** **********
Différence multiligne$ git diff master..branch1
$ git diff --color-words branch1..branch2
la source
git push origin :old-name new-name
pour supprimer l'ancienne branche distante et appuyez sur la nouvelle branche locale.Faites un travail simultané sur la
dev
branche. Ce qui se passe, c'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 il peut être considéré comme un mouvement vers l'avant. Vous êtes arrivé 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 effectuez 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 la division que vous essayez de visualiser, comme les branches ont maintenant divergé.
Contre
la source
Git 2.23 introduit
git switch
etgit restore
partage les responsabilités desgit checkout
Créer une nouvelle branche à partir d'une branche existante à partir de git 2.23:
git switch -c my-new-branch
Passé à une nouvelle branche «ma-nouvelle-branche»
Jetez un œil à ce billet de blog Github expliquant les changements plus en détail:
la source
Pour créer une branche à partir d'une autre branche de votre répertoire local, vous pouvez utiliser la commande suivante.
Par exemple:
la source
Si vous souhaitez créer une branche à partir d'une autre branche, suivez les étapes ci-dessous:
Hypothèses :
BranchExisting
est le nom de la branche à partir de laquelle vous devez créer une nouvelle branche avec un nomBranchMyNew
.Étapes :
Récupérez la branche sur votre ordinateur local.
Cette commande créera une nouvelle branche dans votre section locale avec le même nom de branche.
Maintenant, de l'extraction de la branche principale à la nouvelle branche récupérée
Vous êtes maintenant dans BranchExisting. Créez maintenant une nouvelle branche à partir de cette branche existante.
Voici!
la source
Pour créer une branche à partir d'une autre, vous pouvez également utiliser cette syntaxe:
Il est un peu plus court que "git checkout -b" + "git push origin"
la source