如何从仅包含1个分支的sourcetree中的repo中删除分支?

时间:2016-01-25 20:30:52

标签: git atlassian-sourcetree

我在本地环境中安装了SourceTree。我在一个企业的共享git repos集合中工作。看起来管理员创建了一个新的回购RepoY,我们之前只有1个回购(RepoX)。我不小心在RepoY中创建了BranchZ,我需要删除它。

我在RepoY下通过SourceTree选择了BranchZ,右键单击并且我能够"删除"但它现在显示左侧有一个红色减号。我试图"删除"分支但SourceTree返回以下错误:"错误:无法删除分支' BranchZ'你当前在哪。"

我无法在回购中切换分支,因为BranchZ是回购中唯一的分支。如果我在SourceTree中双击不同的仓库,那么我只能在RepoY中删除RepoY但不能删除BranchZ。有没有办法做我尝试通过SourceTree做的事情,或者这是SourceTree的限制?

4 个答案:

答案 0 :(得分:4)

使用git init创建git存储库时,默认情况下将创建master分支。我认为在您的情况下,主分支可能会被某些错误删除,或者您意外地将其重命名。所以,在这种情况下,你可以从SourceTree做的是,

  1. 创建一个名为master
  2. 的分支
  3. 结帐master分支
  4. 删除BranchZ分支
  5. 或者从命令行

    cd <repo_dir>
    git branch master
    git checkout master
    git branch -d BranchZ
    

答案 1 :(得分:2)

您不允许删除您所在的分支,首先您已经结帐到另一个分支,因为它是唯一的分支,您只需检查主分支(每个仓库都有主分支,如果它没有被删除)。然后你就可以删除,但要确保你的回购正确。

git checkout master
git push origin :<branchName> (it deletes local and remote branch in case of you already pushed commits)

答案 2 :(得分:0)

现在可以在Sourcetree的UI中完成此操作。

转到(远程)分支视图,选择要删除的节点,右键单击,选择 Branch ...
在“分支窗口”中,切换到删除分支标签。

enter image description here

根据需要删除或强制删除分支,然后再次签出。

答案 3 :(得分:0)

我尝试了源代码树,但没有成功。实现它的最佳方法是登录您的 bitbucket 并从那里删除分支。您可以在本地使用终端删除目标分支。

比特桶: 分支 -> 您的目标分支 -> 从 (...) 菜单中“删除”操作。

删除本地分支:

git checkout master
git branch -d target-branch