我有两个分支:master和dev
我想从开发分支创建一个“功能分支”。
目前在分支开发中,我做到了:
git checkout -b myfeature dev
…(一些工作)
git commit -am "blablabla"
git push origin myfeature
但是,在想象我的树枝之后,我得到了:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
我的意思是分支似乎很快就合并了,我不明白为什么。。。
我做错了什么?
如何从另一个分支分支并将其推回到功能分支的远程存储库?
所有这些都在一个分支模型中,就像这里描述的那样。
如果您想从Git中的任何现有分支创建一个新分支,只需遵循以下选项即可。
首先从要创建新分支的位置更改/签入分支。例如,如果您有以下分支,如:
主人开发分支1
因此,如果要在名为“branch1”的分支下创建名为“subbranch_of_b1”的新分支,请执行以下步骤:
签出或更改为“branch1”git结帐分支1现在,使用以下命令在“branch1”下创建名为“subbranch_of_b1”的新分支。git checkout-b subbranch_of_b1分支1上面的命令将在branchbranch1下创建一个名为subbranch_of_b1的新分支(注意,上面命令中的branch1不是强制性的,因为HEAD当前指向它,但是如果您在不同的分支上,则可以精确到它)。现在,在使用subbranch_of_b1之后,您可以在本地或远程提交、推送或合并它。
将subbranch_of_b1推到远程:
git push origin subbranch_of_b1
创建分支
签出主分支时创建分支。此处,master中的提交将同步到您创建的分支。git分支1签出branch1时创建分支。此处,branch1中的提交将同步到branch2git分支分支2
签出分支
gitcheckout命令切换分支或恢复工作树文件
git签出分支名称
重命名分支
git branch-m branch1 newbranchname
删除分支
gitbranch-d要删除的分支git branch-要删除的D分支(强制删除而不检查合并状态)
创建和切换分支
git checkout-b branchname
完全包含的分支
git分支--合并
分支差异[git diff branch1..branch2]
多行差异
git diff主机。。分支1
单线差异
git diff—颜色词branch1..branch2
如果您喜欢发布的链接中的方法,请查看GitFlow。
这是他为该工作流创建的一组脚本。
但要回答您的问题:
git checkout -b myFeature dev
从dev创建MyFeature分支。完成您的工作,然后
git commit -am "Your message"
现在将您的更改合并到开发中,无需快进
git checkout dev
git merge --no-ff myFeature
现在将更改推送到服务器
git push origin dev
git push origin myFeature
你会看到你想要的样子。