間違ってremoteブランチを作ってしまったのですが、勉強になったので記事にしておきます ;P
1 $ git push origin local_deploy
2 $ git branch -a
3 * master
4 origin/HEAD
5 origin/deploy
6 origin/local_deploy
7 origin/master
1 $ git push origin :local_deploy
これでサーバ側は反映されました。
しかしもう一つ別のディレクトリで同じgitリポジトリをcloneしていて、そちらで削除が反映されない状況に。
下記の1.の説明にあるように、(remoteブランチの追加は自動でされるが)削除されたものはローカルで明示的に削除しないといけないようです。
Delete unneeded branch
$ git clone git://git.kernel.org/.../git.git my.git
$ cd my.git
$ git branch -d -r origin/todo origin/html origin/man (1)
$ git branch -D test (2)
1. Delete remote-tracking branches "todo", "html", "man". Next fetch or pull will create them again unless you configure them not to. See git-fetch(1).
2. Delete "test" branch even if the "master" branch (or whichever branch is currently checked out) does not have all commits from test branch.
http://www.kernel.org/pub/software/scm/git/docs/git-branch.html
(上によると、git branch -d -r origin/removed_branchでもremoteブランチが削除できるようですね)
git remote辺りにコマンドがあると知ったので見てみると、git remote showがありました。
確認すると、腐りかけた(Stale)tracking branchと表示されています。
1 $ git remote show origin
2 * remote origin
3 URL: ssh://git.s21g.com/mnt/git/blog.git
4 Remote branch merged with 'git pull' while on branch master
5 master
6 Stale tracking branch (use 'git remote prune')
7 local_deploy
8 Tracked remote branches
9 deploy master
そして、pruneで削除。ヘルプには、--dry-runでやるとどのブランチをpruneするかレポートしてくれて、実際のactionはしない旨が記述されているのですが、私の環境では削除されてしまいました。
1 $ git remote prune origin --dry-run
http://www.kernel.org/pub/software/scm/git/docs/git-remote.html
http://www.kernel.org/pub/software/scm/git/docs/git-branch.html
http://reinh.com/blog/2008/04/18/git-push-just-the-tip.html