我有很多Git分支.如何删除已合并的分支?是否有一种简单的方法可以删除它们而不是逐个删除它们?
是否有一种简单的方法可以删除远程等效不再存在的所有跟踪分支?
例:
分支机构(本地和远程)
在本地,我只有一个主分支.现在我需要处理bug-fix-a,所以我检查它,处理它,并将更改推送到远程.接下来我用bug-fix-b做同样的事情.
分支机构(本地和远程)
现在我有本地分支机构master,bug-fix-a,bug-fix-b.Master分支维护者将我的更改合并到master中并删除他已经合并的所有分支.
那么现在的状态是:
分支机构(本地和远程)
现在我想调用一些命令删除分支(在本例中为bug-fix-a,bug-fix-b),这些分支不再在远程存储库中表示.
它会像现有的命令git remote prune origin,但更像是git local prune origin.
我的情况是这样......在同一个仓库工作的人从他的本地和远程仓库中删除了一个分支......
大多数在Stack Overflow或其他网站上询问此类问题的人都会git branch -a在其底部的远程跟踪分支列表中显示分支问题:
* master
  develop
  feature_blah
  remotes/origin/master
  remotes/origin/develop
  remotes/origin/feature_blah
  remotes/origin/random_branch_I_want_deleted
但是,在我的情况下,不应该在那里的分支是本地的:
* master
  develop
  feature_blah
  random_branch_I_want_deleted
  remotes/origin/master
  remotes/origin/develop
  remotes/origin/feature_blah
当我执行以下任何操作时,它不会在本地删除:
$ git prune
我也尝试过:
$ git remote prune origin
$ git fetch --prune
更有用的信息:当我检查git remote show origin它是如何看起来:
* remote origin
Fetch URL: utilities:homeconnections_ui.git
Push  URL: utilities:homeconnections_ui.git
HEAD branch: master
Remote branches:
 master                        tracked
 develop                       tracked
 feature_blah                  tracked
 other123                      tracked
 other444                      tracked
 other999                      tracked
Local branches configured for 'git pull':
 develop                      merges with remote …在VSCode中,在我执行拉取请求并删除GitHub上的分支后,该分支仍然显示在Visual Studio代码中.如果我选择分支,它会按预期给出错误.
如何从VSCode中删除这些现已删除的分支 - 我可以自动执行吗?
列出并删除多个分支
与此同时__CODE__,这是我用于的另一个分支删除相关命令__CODE__:
示例 - 列出以.开头的所有分支 __CODE__
__PRE__
列表删除.注意:更换__CODE__与__CODE__删除没有警告
__PRE__
在工作中,我们使用的主题分支在某些时候被集成到少数(3)主分支中.现在我想从我的远程存储库中删除已完全集成到主分支中的所有主题分支.如果那是不可能的,那么检索已经集成的本地分支列表也会没问题.
我有一个克隆.我想减少它的历史,而不是从头开始克隆,减少深度.工作示例:
$ git clone git@github.com:apache/spark.git
# ...
$ cd spark/
$ du -hs .git
193M    .git
好吧,所以不是这样,但它会为这次讨论服务.如果我尝试gc它会变小:
$ git gc --aggressive
Counting objects: 380616, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (278136/278136), done.
Writing objects: 100% (380616/380616), done.
Total 380616 (delta 182748), reused 192702 (delta 0)
Checking connectivity: 380616, done.
$ du -hs .git
108M    .git
尽管如此,相当大(git pull表明它仍然可以向遥控器推送/拉动).重新包装怎么样?
$ git repack -a -d --depth=5
Counting objects: 380616, done.
Delta compression using up to 4 …寻找一个命令来删除 Git 存储库上除 master 之外的所有分支并将它们推送到远程。
这是为了在发布之前清理 Git 存储库,因为以前的历史分支其他所有内容都是完全开发更改并且无关紧要。
当使用 Git Flow 或存在多个稳定分支的类似工作流程处理项目时,我创建了许多功能分支(feature/do-something-1、hotfix/fix-bug-1等)。
有时我需要清除本地分支列表,因为实际上不可能用数十个基本分支来管理它们。我通常通过将分支名称复制并粘贴到命令中来一次删除它们git branch -d。但需要很长时间才能删除整个存储库并再次克隆。
我想在一个命令中删除除master和develop之外的所有内容(无需编写额外的 shell 脚本/别名),但我在互联网上找到的所有解决方案只允许您删除除一个分支(master例如 )之外的所有内容。这不是一个合适的解决方案。有人遇到过类似的问题吗?
我在本地和远程创建了许多分支。我想从本地和远程删除所有分支。
注意:我不想一一删除每个分支。
谢谢