我有两个分支: 掌握开发

我想从 开发 分支。

目前在分支机构开发处,我确实:

$ git checkout -b myfeature dev

... (一些工作)

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

但是,在可视化我的树枝之后,我得到了:

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

我的意思是该分支似乎合并了,我不明白为什么...

我在做什么错?

您能向我解释一下,您如何从另一个分支分支并推回该功能分支的远程存储库?

在分支模型中所有这些 这里描述的.

有帮助吗?

解决方案

如果您喜欢已发布的链接中的方法,请查看 git流.

这是他为该工作流创建的一组脚本。

但是要回答您的问题:

$ git checkout -b myFeature dev

创建MyFeature Branch of Dev。做你的工作,然后

$ git commit -am "Your message"

现在将您的更改合并为开发人员而没有快进

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

现在将更改推向服务器

$ git push origin dev
$ git push origin myFeature

您会看到它的想要。

其他提示

如果您想从GIT中的任何现有分支创建一个新分支,请遵循选项。

首先更改/结帐到您要创建新分支的分支。例如,如果您有以下分支,例如:

  • 掌握
  • 开发
  • 分支1

因此,如果您想创建一个名为的新分支 “ subbranch_of_b1” 在命名的分支下 “分支1” 按照步骤:

  1. 结帐或更改为 “分支1”

    git checkout branch1
    
  2. 现在创建您的新分支称为 “ subbranch_of_b1” 在下面 “分支1” 使用以下命令。

    git checkout -b subbranch_of_b1 branch1
    

    以上将创建一个名为的新分支 subbranch_of_b1 在分支下 分支1 (注意 branch1 在上面的命令中,不是强制性的,因为当前头部指向它,但是如果您在其他分支上,则可以将其精确化。

  3. 现在与 subbranch_of_b1 您可以在本地或远程推动或推动或合并。

A sample Graphical Illustration Of Creating Branches Under another Branch

将subbranch_of_b1推到远程

 git push origin subbranch_of_b1 

创建一个分支

  • 签出主分支时创建分支。在这里,主持人将同步与您创建的分支同步。

    $ git branch branch1

  • 签出分支1时创建分支。这里的分支1将同步到分支2

    $ git branch branch2


结帐分支

git Checkout命令开关分支或还原工作树文件

  • $ git checkout branchname

重命名分支

  • $ git branch -m branch1 newbranchname

删除分支

  • $ git branch -d branch-to-delete
  • $ git branch -D branch-to-delete ( 强制删除而无需检查合并状态 )

创建和切换分支

  • $ git checkout -b branchname

完全包括的分支机构

  • $ git branch --merged


************************** 分支差异 git diff branch1..branch2] *************************************

多行差
  • $ git diff master..branch1
单线线差异
  • $ git diff --color-words branch1..branch2

同时在 dev 分支。发生的事情是,在您的情况下,功能分支从开发分支的尖端向前移动,但是开发分支没有改变。作为直线绘制更容易,因为可以将其视为前进运动。您将其指向D开发,然后从那里继续进行平行路径。这两个分支没有真正分歧。

现在,如果您对开发人员进行提交,在合并之前,您将在同一提交中再次开始,但是现在功能将转到C和DEV到B。这将显示您试图可视化的分裂,因为分支机构现在已经分歧了。

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

相对

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

Git 2.23介绍 git switchgit restore 分裂职责 git checkout

从GIT 2.23的现有分支机构创建一个新分支:

git switch -c my-new-branch

切换到新的分支“ my-new-ranch”

  • -C 缩短了 - 创造 并取代知名人士 GIT结帐-B

看一眼 这个 GitHub博客文章,更详细地解释了这些变化:

GIT 2.23将一对新的实验命令带到了现有的实验命令中: git开关git还原. 。这两个最终旨在为著名的GIT结帐提供更好的界面。新命令打算每个人都有明确的分离,整洁地分开了 GIT结帐

如果您想从另一个分支机构制作一个分支,请按照波纹管步骤操作:

假设:

  1. 您当前在主人分支。
  2. 您没有任何更改。 (如果您有任何更改要提交,请将其藏起来!)。
  3. BranchExisting 是您需要从中制作一个名称的新分支的分支名称 BranchMyNew.

脚步:

  1. 将分支获取到您本地的机器。

    $ git fetch origin BranchExisting : BranchExisting
    

此命令将在您的本地使用相同的分支名称创建一个新分支。

  1. 现在,从大师分支结帐到新获取的分支

    $ git checkout BranchExisting
    
  2. 您现在正在分支机构中。现在从这个现有分支创建一个新分支。

    $ git checkout -b BranchMyNew
    

干得好!

从另一个分支创建一个分支也可以使用此语法:

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

它比“ Git Checkout -B” +“ Git Push Origin”短一点

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top