协慌网

登录 贡献 社区

从另一个分支在 Git 中创建一个分支

我有两个分支: masterdev

我想从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 中的任何现有分支创建新分支,只需按照选项操作即可。

首先更改 / 签出到您要创建新分支的分支。例如,如果您有以下分支,例如:

  • 开发
  • BRANCH1

所以,如果你想创建一个名为“subbranch_of_b1”命名的分支下的新分支“BRANCH1”遵循的步骤:

  1. 结帐或更改为“branch1”

    git checkout branch1
  2. 现在,根据“BRANCH1”使用下面的命令创建名为“subbranch_of_b1”新的分支。

    git checkout -b subbranch_of_b1 branch1

    上面的代码将创建一个名为分支BRANCH1subbranch_of_b1新的分支(注意branch1上面的命令是不是强制性的,因为头是目前指向它,你可以精确的,如果你是在一个不同的分支,虽然)。

  3. 现在使用了subbranch_of_b1之后,您可以在本地或远程提交并推送或合并它。

在另一个分支下创建分支的示例图形说明

将 subbranch_of_b1 推送到远程

git push origin subbranch_of_b1

创建一个分支

  • 签出主分支时创建分支。这里的 master 中的提交将同步到你创建的分支。

    $ git branch branch1

  • 签出 branch1 时创建分支。这里 commit1 中的提交将同步到 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