问题: 我想要一种方法来删除所有本地分支,我有没有一个远程。将分支的名称通过管道输入到 git branch -D {branch_name}
中非常容易,但是首先我如何获得这个列表呢?
例如:
我创建了一个没有遥控器的新分支:
$ git co -b no_upstream
我列出了我所有的分行,只有一家有遥控器
$ git branch -a
master
* no_upstream
remotes/origin/HEAD -> origin/master
remotes/origin/master
我可以运行什么命令来得到 no_upstream
作为答案?
我可以运行 git rev-parse --abbrev-ref --symbolic-full-name @{u}
,这将显示它没有远程:
$ git rev-parse --abbrev-ref --symbolic-full-name @{u}
error: No upstream configured for branch 'no_upstream'
error: No upstream configured for branch 'no_upstream'
fatal: ambiguous argument '@{u}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
但是由于这是一个错误,因此它不允许我使用它或将它导入其他命令。我打算使用它作为一个别名为 git-delete-unbranched
的 shell 脚本,或者创建一个超级简单的 Gem,比如 git-branch-delete-orphans