从另一个分支在Git中创建一个分支
我有两个分支: 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合并,我不明白为什么...
我做错了什么?
您能否解释一下我如何从另一个分支分支并推回功能分支的远程存储库?
#1楼
同时在dev
分支上工作。 发生的情况是,在您的场景中,功能分支从dev分支的顶端向前移动,但是dev分支没有改变。 绘制为直线更容易,因为可以将其视为向前运动。 您将其指向开发人员上的A,然后从那里继续沿着并行路径前进。 这两个分支并没有真正分开。
现在,如果您对dev进行提交,则在合并之前,您将再次从相同的提交A开始,但是现在功能将转到C,将开发人员转到B。这将显示您尝试可视化的拆分,即分支现在分歧了。
*-----*Dev-------*Feature
与
/----*DevB
*-----*DevA
\----*FeatureC
#2楼
如果要从Git中的任何现有分支创建新分支,只需遵循这些选项即可。
首先在要创建新分支的分支中更改/签出。 例如,如果您具有以下分支,例如:
- 主
- 开发者
- 分支1
所以,如果你想创建一个名为“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
#3楼
创建一个分支
- 检出主分支后创建分支。 master中的提交将被同步到您创建的分支。
$ git branch branch1
- 在检出branch1时创建分支。 在这里,在branch1中的提交将同步到branch2
$ 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
#4楼
如果您喜欢发布的链接中的方法,请查看Git Flow 。
这是他为该工作流程创建的一组脚本。
但是要回答你的问题:
$ 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
然后您会看到它想要的样子。
#5楼
为了从另一个分支创建分支,也可以使用以下语法:
git push origin refs/heads/<sourceBranch>:refs/heads/<targetBranch>
它比“ git checkout -b” +“ git push origin”短一点
#6楼
Git 2.23引入了git switch
和git restore
来分割git checkout
的职责
从git 2.23开始,从现有分支创建一个新分支:
git switch -c my-new-branch
切换到新分支“ my-new-branch”
- -c是--create的缩写-替换众所周知的git checkout -b
看看这个 Github博客文章,更详细地解释更改:
Git 2.23为现有的命令集带来了一对新的实验命令: git switch和git restore 。 这两个是为了最终为众所周知的git checkout提供更好的界面。 新命令旨在使每个命令有一个清晰的分隔,整齐地划分出git checkout的许多职责
#7楼
如果要从另一个分支创建分支,请遵循以下步骤:
假设 :
- 您目前在master分支中。
- 您没有要提交的更改。 (如果您有任何要提交的更改,请隐藏它!)。
-
BranchExisting
是分支的名称,您需要从该分支中创建一个名为BranchMyNew
的新分支。
步骤 :
-
将分支获取到本地计算机。
$ git fetch origin BranchExisting : BranchExisting
此命令将在本地使用相同的分支名称创建一个新分支。
-
现在,从主分支结帐到新获取的分支
$ git checkout BranchExisting
-
您现在位于BranchExisting中。 现在从该现有分支创建一个新分支。
$ git checkout -b BranchMyNew
干得好!
#8楼
要从本地目录中的另一个分支创建一个分支,可以使用以下命令。
git checkout -b <sub-branch> branch
例如:
- 要创建的新分支的名称“ XYZ”
- 必须在其下创建XYZ的分支ABC的名称
git checkout -b XYZ ABC
推荐阅读
-
从另一个分支在Git中创建一个分支
-
NET 在一个数组中查找另一个数组所在起始位置(下标从0开始,未找到返回-1)
-
eclipse怎么新建git分支? eclipse中git创建分支的方法
-
在 Shell 提示符中显示 Git 分支名称的方法
-
git如何在本地上拉(创建)一个新分支?
-
NET 在一个数组中查找另一个数组所在起始位置(下标从0开始,未找到返回-1)
-
eclipse怎么新建git分支? eclipse中git创建分支的方法
-
在 Shell 提示符中显示 Git 分支名称的方法
-
在git中查看/删除本地分支和远程分支
-
C++ 项目的创建,不同模块函数调用的详细讲解(在一个功能模块的.cpp文件中调用另一个模块.cpp文件中定义的函数)