2014-01-09

remote で削除されたブランチをローカルにも反映する

Qiita にやり方が書いてあったんだけど、自分のブログにも書いとかないとすぐ忘れちゃうんでメモ。元ネタはこちら。

この記事が書いてる通り、リモートのリポジトリーでブランチを誰かが削除しても、ローカルにはブランチが残ってる。これは気持ち悪い。そこで、誰かがリモートでブランチを消したら、ローカル環境にも反映させたい。

remote が origin だとした場合、次のコマンドでローカルのブランチも消せる。

$ git remote prune origin

ちなみに、リモートのブランチを消す方法は次の通り:

$ git push origin :branch

消したいブランチ名の前に : (コロン) を置くのがコツ。

せっかくなので少し解説すると、git で branch を push する場合、次のようにする。

$ git push origin local-branch-name:remote-branch-name

つまり、ローカル・ブランチとリモート・ブランチの名前は変えられる。けど、普通、ブランチ名を変える必要はないので、こうなる。

$ git push origin branch-name:branch-name

branch-name を二回書くのは煩わしいので、上のコマンドは下のコマンドと同じという扱いになっている。

$ git push origin branch-name

さて、話は戻ってリモート・ブランチを消す方法。空のブランチをリモート・ブランチに push すればいい。「空のブランチ」は空白で良いので、結果、コロンをブランチ名の前に置いたらリモート・ブランチが削除できたようなコマンドが出来上がる。

$ git push origin :branch

以上。

No comments:

Post a Comment