Git:本地跟踪,添加新分支?
我正在尝试清理我的git存储库并Git:本地跟踪,添加新分支?,git,github,Git,Github,我正在尝试清理我的git存储库并 创建镜像我的生产(主)分支的新分支 删除任何不必要的远程或本地分支 使我的本地分支机构成为本地跟踪分支机构(idk,如果我需要这样做,好处是什么?) 在我的工作流的每个阶段都有一个分支,即一个分支用于本地开发(dev),一个分支用于登台(staging),一个分支用于生产(production)。Local和dev可以共享同一个工作分支,但用于暂存和生产的分支是不同的 从命令行可以看到我的环境 $ git remote dev origin production
$ git remote
dev
origin
production
staging
$ git branch -r
dev/dev
origin/HEAD -> origin/master
origin/dev
origin/master
production/master
wpengine-findcra/master
$ git branch -vv
dev xxxxxxx <comment>
*master xxxxxxx [origin/master] <comment>
production/staging xxxxxxx [remotes/production/master] <comment>
staging/master xxxxxxx <comment>
我的代码在origin/master和dev/dev下是最新的。如果分支的名称包含斜杠,git将(在
.git/refs/heads
中)创建一个与分支名称类似的目录,直到斜杠为止。在该目录中,它将放置分支本身的引用。因此目录.git/refs/heads/staging/
存在,并且由于您的分支staging/master
而包含一个文件“master”
当您尝试创建分支“staging”时,git将尝试创建文件.git/refs/heads/staging
。由于该目录已经存在,但它是一个目录,因此将失败。因此,存储库中不能有两个具有这些名称的分支
在较新版本的git中,错误消息如下所示:
fatal: cannot lock ref 'refs/heads/staging': 'refs/heads/staging/master' exists; cannot create 'refs/heads/staging'
这个答案有些道理,但最初的问题是关于“推动”,我不知道如何将它应用到我的情况中。谢谢,这为我指明了正确的方向!我最终删除了一个本地分支暂存/主机,并创建了一个远程链接到我的暂存服务器的新分支暂存/暂存。我还将其推送到位于origin/github的origin服务器。我删除了staging/master,但是能够签出origin/master并将其分支到新的staging/staging,因为我在同一个代码库中。
fatal: cannot lock ref 'refs/heads/staging': 'refs/heads/staging/master' exists; cannot create 'refs/heads/staging'