本文共 2860 字,大约阅读时间需要 9 分钟。
我有两个分支: 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**
我的意思是分支似乎在ff合并,我不明白为什么...
我做错了什么?
您能否解释一下我如何从另一个分支分支并推回功能分支的远程存储库?
像那样分支模型中的所有内容。
同时在dev
分支上工作。 发生的情况是,在您的场景中,功能分支从dev分支的顶端向前移动,但是dev分支没有改变。 绘制为直线更容易,因为可以将其视为向前运动。 您将其指向开发人员上的A,然后从那里继续沿着并行路径前进。 这两个分支并没有真正分开。
现在,如果您对dev进行提交,则在合并之前,您将再次从相同的提交A开始,但是现在功能将转到C,将开发人员转到B。这将显示您尝试可视化的拆分,即分支现在分歧了。
*-----*Dev-------*Feature
与
/----*DevB*-----*DevA \----*FeatureC
如果要从Git中的任何现有分支创建新分支,只需遵循这些选项即可。
首先在要创建新分支的分支中更改/签出。 例如,如果您具有以下分支,例如:
所以,如果你想创建一个名为“subbranch_of_b1”命名的分支下的新分支“BRANCH1”遵循的步骤:
结帐或更改为“ branch1”
git checkout branch1
现在,根据“BRANCH1”使用下面的命令创建名为“subbranch_of_b1”新的分支。
git checkout -b subbranch_of_b1 branch1
上面的代码将创建一个名为分支BRANCH1下subbranch_of_b1新的分支(请注意, branch1
上面的命令是不是强制性的,因为头是目前指向它,你可以精确的,如果你是在一个不同的分支,虽然)。
现在,在使用subbranch_of_b1之后,您可以在本地或远程提交并推送或合并它。
将subbranch_of_b1推送到远程
git push origin subbranch_of_b1
创建一个分支
$ git branch branch1
$ 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
如果您喜欢发布的链接中的方法,请查看 。
这是他为该工作流程创建的一组脚本。
但是要回答你的问题:
$ 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
然后您会看到它想要的样子。
为了从另一个分支创建分支,也可以使用以下语法:
git push origin refs/heads/:refs/heads/
它比“ git checkout -b” +“ git push origin”短一点
Git 2.23引入了和来分割git checkout
的职责
从git 2.23开始,从现有分支创建一个新分支:
git switch -c my-new-branch
切换到新分支“ my-new-branch”
看看 Github博客文章,更详细地解释更改:
Git 2.23为现有的命令集带来了一对新的实验命令: git switch和git restore 。 这两个是为了最终为众所周知的git checkout提供更好的界面。 新命令旨在使每个命令有一个清晰的分隔,整齐地划分出git checkout的许多职责
如果要从另一个分支创建分支,请遵循以下步骤:
假设 :
BranchExisting
是分支的名称,您需要从该分支中创建一个名为BranchMyNew
的新分支。 步骤 :
将分支获取到本地计算机。
$ git fetch origin BranchExisting : BranchExisting
此命令将在本地使用相同的分支名称创建一个新分支。
现在,从主分支结帐到新获取的分支
$ git checkout BranchExisting
您现在位于BranchExisting中。 现在从该现有分支创建一个新分支。
$ git checkout -b BranchMyNew
干得好!
要从本地目录中的另一个分支创建一个分支,可以使用以下命令。
git checkout -bbranch
git checkout -b XYZ ABC
转载地址:http://wvdnb.baihongyu.com/