如何创建子分支?

How to create a sub branch?

我的 git 存储库有两个分支,masterbug。我想创建一个分支 bug/rep。所以我 运行 :

git branch bug/rep

这给出了错误:

error: unable to resolve reference refs/heads/bug/rep: Not a directory fatal: Cannot lock the ref 'refs/heads/bug/rep'.

如何从 bug 分支创建子分支,例如 bug/rep? 我的 git 版本是 Mac.

上的 2.3.2

在git中,分支对应于.git子目录中层次结构中的实际文件。如果您创建一个名为 bug/sub 的分支,git 将首先创建一个文件夹 .git/refs/heads/bug(如果它尚不存在),并在该文件夹中创建一个名为 sub 的文件] 这是分支。假定分支名称在 .git/refs/heads 内解析,因此 refs/heads + bug/sub 解析为文件系统中的真实位置。

您遇到的问题来自您的文件系统。由于您已经有一个名为 bug 的分支,因此在 .git/refs/heads 已经 一个名为 bug 的文件。如上所述创建子分支需要文件系统创建一个名为 bug 的新文件夹,但它不能,因为那里已经有一个名为 bug.

的文件

简而言之,您可以自由创建分支层次结构,但层次结构中更高级别的节点本身不能成为分支。

用于创建新的子分支
git checkout -b <sub-branch-name>
// 推送时自动创建子分支
用于将文件推送到先前创建的子分支上
git push -u origin <sub-branch-name> -u 用于设置上游参数


这里origin是master分支,加上

git add remote origin master https://github.com/<ur-name>/repoName.git

查看分支名称

git branch