【问题标题】:how can I create git branch like develop/user1/issue1我怎样才能创建像develop/user1/issue1这样的git分支
【发布时间】:2013-09-16 18:01:44
【问题描述】:

我想在远程存储库上创建一个类似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

【问题讨论】:

  • 只需创建一个名为develop/user1/issue1 的分支并将其推送到origin
  • # git checkout -b develop/user1 错误:无法解析参考 refs/heads/develop/user1:不是目录致命:无法锁定参考以进行更新:不是目录

标签: git git-branch git-remote


【解决方案1】:

基本上你无法按照你的提议创建结构。

为什么?

因为当你有一个带有斜杠的分支时,它会被存储为 .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 进入 .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 的文件已经存在,而您的命令需要它是一个目录。

【讨论】:

  • 添加到答案,因为分支被视为目录和文件,你不能有一个带有斜杠的分支名称,其中“子路径”已经存在一个分支名称。如果您删除了 /origin/develop/user1 分支,您将能够为 user1 创建多个问题分支。这就是我在更多工作中所做的。
猜你喜欢
  • 1970-01-01
  • 2017-08-11
  • 1970-01-01
  • 1970-01-01
  • 2017-09-02
  • 2017-06-02
  • 1970-01-01
  • 2011-04-27
  • 2017-07-06
相关资源
最近更新 更多