【发布时间】:2019-04-29 10:12:02
【问题描述】:
有没有办法将git branch -v 的输出作为管道命令?确切地说,我只对分支的状态感兴趣,即是否为[gone]。
例如给定以下git branch -v 输出:
> git branch -v
master 32c59ad4 Some other comment
someDeletedBranch 6aacba47 [gone] Some Comment
我如何获得someDeletedBranch 参考?
请注意,这不与git branch --merged 相同,例如,如果您将拉取请求压缩到您的主服务器中,那么this solution 不会这样做。
这主要与this question 有关,因为这将是能够创建可靠脚本以删除远程不再存在的本地分支的缺失部分。
【问题讨论】:
-
我不确定这是否会对您有所帮助,但有一种方法可以列出所有本地和远程分支。
git branch -a -v。这样你就可以看到远程上不再存在哪些分支。另一种选择是在本地和远程分支之间进行差异。如果它抛出错误,则远程分支不存在。git diff <local branch> <remote>/<remote branch>。如果我没有完全理解这个问题,请提前道歉。 -
@Nemanja 问题在于
git branch是一个不应在脚本中解析的瓷器命令,因为您的方法仍然使用它,因此没有任何改进。而且我不必在遥控器和参考文献之间进行所有这些手动比较——这并不像你想象的那么简单。git branch -v已经帮我完成了,并告诉我哪些分支消失了,哪些没有。 -
@NemanjaGlumac - 除了 Voo 的反对意见之外,这些解决方案的一个更实际的问题是,对于任何尚未推送的本地分支,它们都会得到误报。
-
@MarkAdelsberger - 感谢更新和澄清。
标签: git