間違ってremoteブランチを作ってしまったのですが、勉強になったので記事にしておきます ;P
###remoteにlocal_deployブランチを作成
shell>>
$ git push origin local_deploy #間違って作成
$ git branch -a
- master
origin/HEAD
origin/deploy
origin/local_deploy #ローカルにも反映されている
origin/master
<<--
###remoteブランチを削除
shell>>
$ git push origin :local_deploy
<<--
これでサーバ側は反映されました。
###別のローカルリポジトリ(cloned)で削除が反映されない
しかしもう一つ別のディレクトリで同じ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 show origin, git remote prune origin
git remote辺りにコマンドがあると知ったので見てみると、git remote showがありました。
確認すると、腐りかけた(Stale)tracking branchと表示されています。
shell>>
$ git remote show origin
- remote origin
URL: ssh://git.s21g.com/mnt/git/blog.git
Remote branch merged with 'git pull' while on branch master
master
Stale tracking branch (use 'git remote prune')
local_deploy
Tracked remote branches
deploy master
<<--
そして、pruneで削除。ヘルプには、--dry-runでやるとどのブランチをpruneするかレポートしてくれて、実際のactionはしない旨が記述されているのですが、私の環境では削除されてしまいました。
shell>>
$ git remote prune origin --dry-run
<<--
###Refs
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