• ..

Shell

    Upstream Branch を設定して push や pull 時の対象を省略する

    Upstream Branch は、上流ブランチとも呼ばれるようです。

    Upstream Branch を設定するとどうなるか

    あるローカルブランチがあるとして、そのブランチでの操作ターゲットを省略した時に暗黙的に対象となるようなリモートブランチを設定できます。例えば今のローカルにあるものはリモートAとリモートBに定期的にpushしているとして、リモートAには特に頻繁にpushしている時、

    git rev-parse --abbrev-ref HEAD
    # master ブランチにいる
    
    git branch -u remote-a/master
    # ローカルの master ブランチのデフォルトリモート先を remote-a/master に設定
    # `git branch --set-upstream-to remote-a/master`のエイリアスを使ったもの

    とすると次からgit pushだけでgit push remote-a masterの意味にしてくれます。リモートBの場合は変わらずgit push remote-b masterとなります。

    多分馴染みの食堂で「いつもの」と言っただけで決まった料理が出てくるようなものだと思います。違うのは初回から馴染みの客になれちゃうところでしょうか。

    push 時に一緒に設定する

    ちなみにgit push -u ...-uフラグを付けると、まだ Upstream Branch が設定されていないならその時のリモートブランチを Upstream Branch に設定してくれます。上書きするには、git branch -u ...をする必要があります。

    現在の各ブランチの Upstream Branch 設定状況を確認する

    以下を実行すると一覧で出してくれます。

    git branch -vv
    # * develop       5eac0f0 [origin/develop] commit-message
    #   master        9e51003 [origin/master: behind 48] commit-message