是否有一种简单的方法可以删除远程等效不再存在的所有跟踪分支?
例:
分支机构(本地和远程)
在本地,我只有一个主分支.现在我需要处理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.
git branch -a 显示远程和本地分支.
git branch -r 显示远程分支.
有没有办法列出当地的分支机构?
我知道我可以这样做git branch --all,这向我展示了本地和远程分支,但是向我展示它们之间的关系并没有那么有用.
如何以显示哪个本地分支正在跟踪哪个远程的方式列出分支?
随着git remote prune origin我可以删除本地分支机构不在遥控器上的任何更多.
但我还想删除从这些远程分支创建的本地分支(检查它们是否未合并会很好).
我怎样才能做到这一点?
我只是使用重命名我的本地分支
git branch -m oldname newname
Run Code Online (Sandbox Code Playgroud)
但这只会重命名分支的本地版本.如何在github中重命名一个?
我希望我的本地和远程存储库在分支方面始终保持同步.
在GitHub上进行Pull Request审核后,我合并并删除了我的分支(远程).我如何在本地存储库中获取此信息并让Git删除我的本地版本的分支?
在github项目中,你可以进入/ branches页面和一个漂亮的图形,每个分支显示每个分支相对于主分支的落后多远.

是否有一个类似的命令行工具?什么东西适用于遥控器?例如,
git branch -v -v
Run Code Online (Sandbox Code Playgroud)
接近我正在寻找的,但只适用于本地分支机构.
如何列出出现(按照.git/config)跟踪不再存在的远程分支的任何本地分支?在这种情况下,远程分支机构在GitHub上,但我怀疑它们的位置没有相关性.
例如:
a,b,c和d.a正在跟踪origin/a并c正在跟踪origin/c.b并且d不跟踪远程分支.origin/a已被合并回主服务器并在存储库清理期间被删除; 我不再需要保留本地分支a.a签出到工作树,则运行git fetch或git pull导致错误Your configuration specifies to merge with the ref 'a' from the remote, but no such ref was fetched.如何生成仅包含a其他本地分支的列表,这些分支似乎跟踪不再存在的远程分支?
我想识别这些,以便我可以删除我不再需要的过时的本地分支.
该列表不应包括本地分支b或d不跟踪远程分支,也不c应该是跟踪origin/c,这仍然存在.
它们在OSX下是否与xargs -rLinux相同?如果没有数据,我正试图找到一种方法来中断管道.
例如,假设您执行以下操作:
touch test
cat test | xargs -r echo "content: "
Run Code Online (Sandbox Code Playgroud)
这不会产生任何结果,因为xargs会中断管道.
是否有一些隐藏的 xargs选项或其他东西在OSX下实现相同的结果?
在我们团队的存储库中,我们通过提交PR进行工作,并且仅使用github的squash&merge功能将它们合并为master。对我来说,问题在于我再也看不到分支与合并为master git branch --merged,因为这将不会显示已被压缩和合并的分支。我的当地分支机构堆积如山,很难一一查看,看看可以删除哪些分支。还有另一种列出它们的方法吗?
git ×9
github ×3
branch ×2
git-branch ×2
bash ×1
macos ×1
pull ×1
rename ×1
repository ×1
shell ×1