削除されたremote branchが、CUIでは表示される…

GUIツールでは、消えてるのになぜ…? と気になったので、 リモートブランチの操作方法をまとめます!

■基本

■ちょい発展

1. リモートブランチの表示

1
2
3
4
5
$ git branch -a
* master
  temp
  remotes/origin/master
  remotes/origin/temp

 

2. リモートブランチの削除

1
$ git push origin :temp

すると、リモートブランチの temp が削除されます。

1
2
3
4
$ git branch -a
* master
  temp
  remotes/origin/master

 

3. リモートブランチを取り込む

複数人で開発している場合、 他の人がリモートにpushしたブランチを取り込みたい時に、以下のコマンドを実行します。

1
$ git fetch

ここで、git fetchリモートブランチを取ってくるだけです。

 

4. リモートに存在していないブランチを、自分のローカルからも削除したい

他の人が削除したはずのリモートブランチが、ローカルレポジトリでは表示される場合

1
2
3
4
5
$ git branch -a
* master
  temp
  remotes/origin/master
  remotes/origin/other  <= 実際のリモートブランチでは削除されてるのに、表示される!!

以下のコマンドを実行します。

1
2
$ git fetch --prune
x [deleted]         (none)     -> origin/other

remotes/origin/other が無事削除されました!!

git fetch がリモートのものを取り込むだけ(削除されたブランチもローカルではそのまま)、 prune をオプションとして付けると、リモートで削除されたブランチも更新してくれます!

ちなみに、prune をデフォルト設定にもできるみたいです。

参考:http://hail2u.net/blog/software/git-config-fetch-prune.html