从另一个分支中创建一个在git中创建一个分支
-
11-10-2019 - |
题
我有两个分支: 掌握 和 开发
我想从 开发 分支。
目前在分支机构开发处,我确实:
$ 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”
git checkout branch1
现在创建您的新分支称为 “ subbranch_of_b1” 在下面 “分支1” 使用以下命令。
git checkout -b subbranch_of_b1 branch1
以上将创建一个名为的新分支 subbranch_of_b1 在分支下 分支1 (注意
branch1
在上面的命令中,不是强制性的,因为当前头部指向它,但是如果您在其他分支上,则可以将其精确化。现在与 subbranch_of_b1 您可以在本地或远程推动或推动或合并。
将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 switch
和 git 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结帐
如果您想从另一个分支机构制作一个分支,请按照波纹管步骤操作:
假设:
- 您当前在主人分支。
- 您没有任何更改。 (如果您有任何更改要提交,请将其藏起来!)。
BranchExisting
是您需要从中制作一个名称的新分支的分支名称BranchMyNew
.
脚步:
将分支获取到您本地的机器。
$ git fetch origin BranchExisting : BranchExisting
此命令将在您的本地使用相同的分支名称创建一个新分支。
现在,从大师分支结帐到新获取的分支
$ git checkout BranchExisting
您现在正在分支机构中。现在从这个现有分支创建一个新分支。
$ git checkout -b BranchMyNew
干得好!
从另一个分支创建一个分支也可以使用此语法:
git push origin refs/heads/<sourceBranch>:refs/heads/<targetBranch>
它比“ Git Checkout -B” +“ Git Push Origin”短一点