1. ホーム
  2. git

[解決済み] ローカルのGitブランチをリモートレポにコピーする方法

2022-07-25 19:07:02

質問

これまで、以下のような手順で進めてきました。

  1. リモートの Git リポジトリをクローンした
  2. master ブランチを experimental ブランチにブランチした
  3. experimental ブランチで編集/テスト/コミットしたコード

さて、私は experimental ブランチを master にマージする準備ができていません。しかし、リモートリポジトリにプッシュして、数人の同僚と共有しているリポジトリに戻したいのです。私が experimental ブランチで行ったことを彼らに見てもらいたいのです。私は通常、SSH経由でリモートリポジトリにアクセスするだけです。

リモート リポジトリのマスター ブランチに影響を与えずに、リモート リポジトリで私のローカル ブランチを共有するにはどうすればよいですか。

どのように解決するのですか?

によると git push マニュアルページ :

 git push origin experimental

にマッチするrefを探す。 experimental にマッチする参照先をソースリポジトリから探します。 refs/heads/experimental を見つけるでしょう)、同じ ref を更新します(例. refs/heads/experimental ) をオリジンリポジトリで更新してください。

もし experimental がリモートで存在しない場合、それは作成されるでしょう。 .

と同じです。

git push origin experimental:refs/heads/experimental

ブランチの作成 experimental をコピーして、オリジンリポジトリに experimental ブランチをコピーします。

このフォームは ローカル名とリモート名が異なる場合、リモートリポジトリに新しいブランチまたはタグを作成するためにのみ必要です。 そうでなければ、ref 名単位で動作します。

で述べたように、あるいは git のヒント で述べたように、ブランチのデフォルトリモートを設定することもできます。

git config を使用して、指定したブランチにデフォルトのリモートを割り当てることができます。このデフォルトリモートは、特に指定がない限りそのブランチをプッシュするために使用されます。

これは、git clone を使用する際にすでに行われていることで、引数なしで git push を使用してローカルの master ブランチをプッシュし、オリジンリポジトリの master ブランチを更新することができます。

git config branch.<name>.remote <remote> 

は手動で指定することができます。


ヤン が提案する git >= 1.7.0 ) は push -u (または push --set-upstream ) オプションを使用します。

最新であるかプッシュが成功したすべてのブランチに対して、引数なしの git-pull(1) や他のコマンドで使用される上流(追跡)参照を追加します。

そうすれば、gitの設定をする必要がありません。

git push -u origin experimental