我有两个分支。master和dev
我想从dev分支创建一个"特性分支"。
目前在dev分支上,我是这样做的。
$ git checkout -b myfeature dev
...(一些工作)
$ git commit -am "blablabla"
$ git push origin myfeature
但是,在将我的分支可视化之后,我得到了。
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
我的意思是说,这个分支似乎被合并了,我不明白为什么......
我做错了什么?
你能解释一下,你是如何从另一个分支推送到特性分支的远程仓库的?
所有这些都是在像这里描述的这样的分支模式下进行的。
如果你喜欢你发布的链接中的方法,请看一下Git Flow。
这是他为该工作流程创建的一套脚本。
但要回答你的问题。
$ git checkout -b myFeature dev
在dev之外创建MyFeature分支。做好你的工作,然后
$ git commit -am "Your message"
现在把你的修改合并到dev,不需要快进了
$ git checkout dev
$ git merge --no-ff myFeature
现在将更改推送到服务器
$ git push origin dev
$ git push origin myFeature
你就会看到你想要的样子了。
如果你想从Git的任何一个现有分支中创建一个新的分支,只需按照选项即可。
首先改变/签出到你想创建的分支。例如,如果你有以下几个分支,比如。
因此,如果你想在名为"subbranch_of_b1"的分支下创建一个名为"branch1"的新分支,请遵循以下步骤。
1.签出或变更到"branch1"。
git checkout branch1
2.现在在"branch1"下创建新的分支,名为"subbranch_of_b1",使用以下命令。
git checkout -b subbranch_of_b1 branch1
以上将在**branch1**分支下创建一个名为**subbranch_of_b1**的新分支(注意,上述命令中的`branch1`不是强制性的,因为目前HEAD已经指向它了,不过如果你在不同的分支上,可以精确到它)。
3.现在,在对子分支_of_b1进行处理后,你可以在本地或远程提交、推送或合并它。
把_b1的子分支推到远程。
git push origin subbranch_of_b1
在 dev
分支上同时进行工作。发生的情况是,在你的方案中,功能分支从开发分支的顶端向前移动,但开发分支并没有改变。把它画成一条直线比较容易,因为它可以被认为是向前运动。你到了dev的A点,然后从那里继续走平行的道路。这两个分支并没有真正分化。
现在,如果你在合并之前在 dev 上做了一次提交,你将再次从同一个提交点 A 开始,但现在特性将转到 C,而 dev 转到 B。
*-----*Dev-------*Feature
对比
/----*DevB
*-----*DevA
\----*FeatureC