5

我想develop/user1/issue1在远程存储库上创建一个 git 分支,我该如何创建它?

- master => /origin/master
- develop => /origin/develop
    - user1 => /origin/develop/user1
         - issue1 => /origin/develop/user1/issue1
         - issue2 => /origin/develop/user1/issue2
         - issue3 => /origin/develop/user1/issue3
    - user2 => /origin/develop/user2
         - issue4 => /origin/develop/user1/issue4
         - issue5 => /origin/develop/user1/issue5
4

1 回答 1

19

基本上你不能像你提议的那样创建结构。

为什么?

因为当你有一个带有斜杠的分支时,它会被存储为 .git/refs/heads 下的目录层次结构

如何验证

假设您在空目录中没有任何分支。

因此,您使用创建一个虚拟存储库

touch testfile && git init && git add . && git commit -m "initializing"`.

接下来,运行 git branch 命令以按照您的建议创建一些分支。

git branch origin/master
git branch origin/develop/user1
git branch origin/develop/user2/issue4

现在,使用 cd 进入 .git/refs/heads 目录cd .git/refs/heads并执行ls -la

你会发现git创建了如下目录结构。

master (file)
origin (directory)
|_master (file)
|_develop (directory)
   |_user1 (file)
   |_user2(directory)
     |_issue4 (file)

如果现在你尝试使用 创建一个分支git branch origin/develop/user1/issue1,它会抛出错误,因为一个名为 user1 的文件已经存在,而你的命令需要它是一个目录。

于 2013-09-12T11:55:05.290 回答