Answers:
在Git中,分支只是提交的有序列表(又名:签到)。对于新用户而言,可能有些令人困惑的是分支不需要名称(尽管在大多数情况下,您需要一个名称)。而且任何特定分支都没有什么特别的地方(该master
分支只是初始化存储库时为您创建的默认分支)。
您可能已经知道了这一点,但是Git与其他版本控制系统(例如流行的“ Subversion”)不同,因为每个“工作副本”(用Subversion语言)都是其自己的存储库...实际上,没有什么特别的对任何特定副本特别;除了通常已经同意将一个副本作为用于存储最终产品的“规范”副本之外。
因此,回到您的问题...默认情况下,您在启动本地副本时克隆的“规范”存储库包含一个“主”分支;它被卡住了。现在,如果您有权访问包含主存储库的计算机,则可以登录并运行:
git branch -d master
但是,如果您无法执行此操作,则仍然可以在本地计算机上执行此操作。该git branch
命令具有-r
影响远程存储库的选项。换句话说,运行以下命令应该可以工作:
git branch -d -r master
请注意,在这两种情况下;我假设master
已经完全合并到您的本地副本当前所在的开发历史中。如果您以前从未使用master
过(即:您仅签到过development
或production
),则无需担心。但是,如果您(或其他人)已经检查了中的内容master
,则可能有问题。您可以通过在上述命令中将更改为-d
来强制删除-D
。但我强烈建议您master
事先检查一下内容!如果您无法访问远程计算机,则可能无法恢复它!
顺便说说; 如果您(或其他任何人)是Git的新手,我强烈建议您阅读John Wiegley的Bottom Up中的Git。即使在发现本文之前我曾经单独使用过Git,但直到阅读之前我才真正理解它的工作原理。这很有用!
master
是git的默认分支。我不知道为什么当git告诉您离master太远时,它对您如此可怕,但是如果您要删除远程存储库上的分支,仅在本地删除它是不够的。尝试以下方法:
git push origin :master
这不会将任何内容(冒号之前的部分)推送到原始服务器并覆盖主服务器。换句话说,它应该远程删除master分支。
git branch -d -r master
不再删除远程分支,而是删除本地副本对远程分支的了解。下次您git fetch
,分支将回来!相反,您需要运行git push origin :master
。本质上,您在这里所做的是将一个空分支(空分支名称位于的左侧:
)推到远程分支的顶部(分支名称位于右侧:
),以有效地将其删除。