1. ホーム
  2. ギット

[解決済み】ローカルのGitブランチをリモートの違う名前に簡単にプッシュするにはどうすればいいですか?

2022-04-09 14:25:58

質問

ローカルブランチと異なる名前のリモートブランチを、常に両方の名前を指定することなくプッシュ/プルする簡単な方法はないでしょうか。

例えば

$ git clone myrepo.git
$ git checkout -b newb
$ ...
$ git commit -m "Some change"
$ git push origin newb:remote_branch_name

これで、誰かが remote_branch_name を更新したら、できるようになりました。

$ git pull

そして、すべてがマージ/早送りされます。しかし、私のローカルの "newb" に変更を加えると、できません。

$ git push

その代わり、私は

% git push origin newb:remote_branch_name

ちょっとバカみたいですね。もし git-pullgit-config branch.newb.merge を使用してどこから引っ張ってくるかを決定しているのに、なぜ git-push にも同様の設定オプションがあるのでしょうか?このための良いショートカットがあるのでしょうか、それとも遠回りを続けるべきなのでしょうか?

解決方法は?

もちろんです。 push.default から upstream を使用して、ブランチをその上流にプッシュすることができます(これは pull によって定義される、プルすることになります。 branch.newb.merge のデフォルト設定です)。 push.default , matching ).

git config push.default upstream

なお、以前は tracking ではなく upstream Git 1.7.4.2 より前のバージョンでは、Git の古いバージョンを使っている場合は tracking の代わりに その push.default オプションは Git 1.6.4 で追加されました。それより古いバージョンを使っている場合はこのオプションはなく、プッシュ先のブランチを明示的に指定する必要があります。