基于另一个分支创建git分支

32
我想基于另一个分支创建本地分支。例如,我键入:
git checkout -b feature1 release1.1.3
然后我得到:
fatal: git checkout:更新路径与切换分支不兼容。
这是什么问题?

release1.1.3 存在吗?请参考此问题:https://dev59.com/1XNA5IYBdhLWcg3wfNyO。 - Felix Kling
5个回答

40
git branch <new-branch-name> <existing-branch-name>

这个答案设置了 new-branch-name 来追踪远程的 existing-branch-name,这意味着如果你在这个分支上推送更改,它们将被推送到远程的另一个分支。需要注意的是,用户需要在分支创建后使用 git push -u origin new-branch-name 命令来将新分支追踪到远程的相应分支。 - DaBooba

19
要基于另一个分支创建一个新分支,最简单的方法是先切换到基础分支,然后从那里创建一个新分支。如果我理解你的问题正确,那就是你想做的事情。
现在,由于您在分支中使用了-b标志,您可能有一些工作中的更改需要保留。如果是这种情况,您应该将它们推送到存储区,检出基础分支,创建新分支,然后弹出存储区。

14

请先执行 git pull 命令,确保本地分支是最新的。然后再进行分支切换。

语法如下:

$ git checkout -b <branch> --track <remote>/<branch>

或者

$ git checkout <remote>/<branch> -b <branch>

6
“git checkout -b <new_branch> <start_point>” 是合法的命令,这似乎就是原帖中所提到的内容,对吗? - Felix Kling

4
你想创建一个名为feature1的分支,基于release1.1.3提交。你所输入的命令应该也可以工作,但是你的工作区中实际上有一个名为“release1.1.3”的文件夹,这让git无法确定你是指分支/标签还是文件夹。你可以尝试直接使用release1.1.3的提交ID。

2

使用

git checkout -b <new-branch> <existing-branch>

默认情况下,git checkout -b会以当前HEAD为基础创建new-branch。可选的附加分支参数可以传递给git checkout。在上面的示例中,传递了<existing-branch>,这将使new-branchexisting-branch为基础而不是当前的HEAD
参考:https://www.atlassian.com/git/tutorials/using-branches/git-checkout

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接