我有很多Git分支.如何删除已合并的分支?是否有一种简单的方法可以删除它们而不是逐个删除它们?
让我们说coolbranch我的存储库中有一个分支.
现在,我决定删除它(远程和本地):
git push origin :coolbranch
git branch -D coolbranch
Run Code Online (Sandbox Code Playgroud)
大!现在分支真的被删除了.
但是当我跑步的时候
git branch -a
Run Code Online (Sandbox Code Playgroud)
我还是得到:
remotes/origin/coolbranch
Run Code Online (Sandbox Code Playgroud)
需要注意的是,当我克隆一个新的存储库时,一切都很好,git branch -a并没有显示分支.
我想知道 - 有没有办法从branch -a列表中删除分支而不克隆新实例?
我希望我的本地和远程存储库在分支方面始终保持同步.
在GitHub上进行Pull Request审核后,我合并并删除了我的分支(远程).我如何在本地存储库中获取此信息并让Git删除我的本地版本的分支?
$ git branch
develop
* feature/bug_76
master
$ git branch -r
origin/HEAD -> origin/master
origin/develop
origin/feature/implement_IBResponder
origin/master
origin/origin
origin/sculptor_strategy
Run Code Online (Sandbox Code Playgroud)
在当地,我很好.我想删除原产地上的所有内容,所以我尝试:
$ git push origin :origin/sculptor_strategy
error: unable to delete 'origin/sculptor_strategy': remote ref does not exist
error: failed to push some refs to 'git@gitlab:pitbull.git'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
(Wild Guess)是什么原产地的一些本地缓存?
回答
事实证明这是一个红鲱鱼 - 问题是,我的本地缓存是陈旧的,我怀疑.以下两个答案都可以.
我已经将远程 GitHub 存储库克隆到我的计算机上,一切都很顺利。我在一些分支上工作,并且想查看所有分支,所以我输入:
git branch -a
Run Code Online (Sandbox Code Playgroud)
它表明了这一点:
* master
remotes/origin/cleanup
remotes/origin/master
remotes/origin/test
Run Code Online (Sandbox Code Playgroud)
我之前创建了“清理”和“测试”分支,合并它们,在本地端和远程端删除它们,但它们以这种奇怪的“类似文件目录”的方式显示。这是正常的吗?
抱歉,如果这是一个糟糕的问题。我是 Git 和 Github 的新手。