問題:リモートを持たないローカルブランチをすべて削除する方法が必要です。ブランチの名前をパイプでつなぐのは簡単git branch -D {branch_name}
ですが、そもそもそのリストを取得するにはどうすればよいですか?
例えば:
リモートなしで新しいブランチを作成します。
$ git co -b no_upstream
すべてのブランチを一覧表示しますが、リモートを備えたブランチは1つだけです
$ 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
ような非常に単純なGemを作成するつもりです。git-branch-delete-orphans