コマンドにてmasterブランチはローカル側のやつかリモート側のやつかどっちことだかわからなかったので調査した。masterのmasterはソース元を意味している。リモート側のmasterブランチを指している。empty.<refspec>の形式は+オプション<src>:<dst>らしい。masterのmasterはソース元なのか提供先なのか。masterのmasterでは:<dst>の部分を省略していた!ので、masterは<src>意味していて、冒頭の結論ということになる。arbitraryとあり、任意のブランチをリモート先にpushすることができ、リモート先のレポジトリに名前がない場合は作成される。これはGitHubではこれはコマンドライン上でプルリクエストを送ることを意味する。:branch2では<src>が空のものがリモート先の<dst>へプッシュするので、リモート先のbranch2ブランチをコマンドライン上で削除することを意味する。fetchでもローカル側のリモートトラックに<src>が無い場合は、新しく作成される。masterも省略するときmasterも省略するとき、remote.<repository>.fetchという変数を<refspec>としてgitが参照する。デフォルトでこの変数は以下の様になっている。hierarchy.リモート上の全てのブランチ(refs/heads/*)分を、ローカルのリモートトラックブランチ(refs/remotes/origin/*)に対して更新するということ。