41322


リポジトリの、 git の config のファイルを見ていました。 branch に対する設定として、
`branch.BRANCHNAME.pushRemote` と `branch.BRANCHNAME.remote`
を、別々に設定できるようになっていることに気付きました。

### 質問

  * git の branch の設定として、 pushRemote と remote の違いは何ですか?


CC BY-SA 3.0
2018-01-30T06:59:50.283
41321
2019-02-20T04:55:22.317
754
question
git
git での pushRemote と remote


`git-config`によると  
<https://git-scm.com/docs/git-config>

>
[code]

>        branch.<name>.remote
>            When on branch <name>, it tells git fetch and git push which
> remote
>            to fetch from/push to. The remote to push to may be overridden
> with
>            remote.pushDefault (for all branches). The remote to push to, for
>            the current branch, may be further overridden by
>            branch.<name>.pushRemote. If no remote is configured, or if you
> are
>            not on any branch, it defaults to origin for fetching and
>            remote.pushDefault for pushing. Additionally, .  (a period) is
> the
>            current local repository (a dot-repository), see
>            branch.<name>.merge's final note below.
>  
>        branch.<name>.pushRemote
>            When on branch <name>, it overrides branch.<name>.remote for
>            pushing. It also overrides remote.pushDefault for pushing from
>            branch <name>. When you pull from one place (e.g. your upstream)
>            and push to another place (e.g. your own publishing repository),
>            you would want to set remote.pushDefault to specify the remote to
>            push to for all branches, and use this option to override it for
> a
>            specific branch.
>  
[/code]

`branch.<name>.remote`はfetchとpushする際のリモートを指定(通常はこちらだけでOK)、  
`branch.<name>.pushRemote`の方は`.remote`の値を上書きしてpushするリモート先を指定、の様です。

フォークしたリポジトリを追いかけていて、fetchはフォーク元(`branch.master.remote=upstream`)から取得するけど、push先はフォークした自分のリポジトリ(`branch.master.pushRemote=origin`)、みたいな使い方でしょうか。

* * *

**追記**  
このオプションを知ってからフォークしたリポジトリでは`branch.master.pushRemote=origin`を毎回個別に指定していましたが、フォークした場合の`push`先は大抵自分のリポジトリ(`origin`)なので、グローバル設定として`remote.pushDefault=origin`を指定した方が楽なのかもしれないと思いました。  
(フォーク元を`upstream`、フォーク先を`origin`で管理する場合)


CC BY-SA 4.0
2018-01-30T07:42:28.380
41322
2019-02-20T04:55:22.317
2019-02-20T04:55:22.317
3060
3060
41321
answer