間違ってremoteブランチを作ってしまったのですが、勉強になったので記事にしておきます ;P
remoteにlocal_depl oyブランチを作成
1 $ git push origin local_deploy #間違って作成 2 $ git branch -a 3 * master 4 origin/HEA D 5 origin/dep loy 6 origin/loc al_deploy #ローカルにも反映されている 7 origin/mas ter
remoteブランチを削除
1 $ git push origin :local_deploy
別のローカルリポジトリ(cloned)で削除が反映されない
しかしもう一つ別のディレクトリで同じgitリポジトリをcloneしていて、そちらで削除が反映されない状況に。
下記の1.の説明にあるように、(remoteブランチの追加は自動でされるが)削除されたものはローカルで明示的に削除しないといけないようです。
Delete unneeded branch
$ git clone git://git.kernel.org /.../git.g it my.git
$ cd my.git
$ git branch -d -r origin/todo origin/htm l origin/man (1)
$ git branch -D test (2)1. Delete remote-tra
cking 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.or g/pub/soft ware/scm/g it/docs/gi t-branch.h tml
(上によると、git branch -d -r origin/rem
コマンドgit remote show origin, git remote prune origin
git remote辺りにコマンドがあると知ったので見てみると、git remote showがありました。 確認すると、腐りかけた(Stale)tracking branchと表示されています。
1 $ git remote show origin 2 * remote origin 3 URL: ssh://git.s21g.com/m nt/git/blo g.git 4 Remote branch merged with 'git pull' while on branch master 5 master 6 Stale tracking branch (use 'git remote prune') 7 local_depl oy 8 Tracked remote branches 9 deploy master
そして、pruneで削除。ヘルプには、--dry-runでやるとどのブランチをpruneするかレポートしてくれて、実際のactionはしない旨が記述されているのですが、私の環境では削除されてしまいました。
1 $ git remote prune origin --dry-run
Refs
http://www
http://www
http://rei