web-dev-qa-db-ja.com

ローカルGitブランチをリモートリポジトリにコピーする方法

これまでに次の手順を実行しました。

  1. リモートGitリポジトリのクローンを作成しました
  2. マスターブランチを実験的ブランチにブランチしました
  3. 実験ブランチで編集/テスト/コミットされたコード

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

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

127
Coocoo4Cocoa

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

 git Push Origin experimental

ソースリポジトリでexperimentalに一致するrefを見つけます(ほとんどの場合、refs/heads/experimental)、同じ参照を更新します(例:refs/heads/experimental)Originリポジトリで。
_experimentalがリモートに存在しなかった場合、作成されます

これは次と同じです:

git Push Origin experimental:refs/heads/experimental

現在のexperimentalブランチをコピーして、Originリポジトリにexperimentalブランチを作成します。
この形式は、ローカル名とリモート名が異なる場合にリモートリポジトリに新しいブランチまたはタグを作成するためにのみ必要です;それ以外の場合は、ref名自体が機能します。

または、 git tip で述べたように、「ブランチのデフォルトリモート」を設定できます。

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

これは、git cloneを使用するときに既に行われているため、引数なしでgit Pushを使用してローカルマスターブランチをプッシュし、Originリポジトリのマスターブランチを更新できます。

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

これを使用して手動で指定できます。


Jan は( git> = 1.7. の場合)Push -u (または Push --set-upstream)オプション:

最新のブランチまたは正常にプッシュされたブランチごとに、引数のないgit-pull(1)およびその他のコマンドで使用されるアップストリーム(追跡)参照を追加します。

そうすれば、git configを実行する必要はありません。

git Push -u Origin experimental
157
VonC

ブランチの名前がexperimentalで、リモートの名前がOriginの場合、それは

git Push Origin experimental
15
John Douthat

git Push -u <remote-name> <branch-name>は、新しく作成されたブランチが同じリポジトリから生成されていない場合、つまりgit checkout -b new_branchを使用して新しいブランチを作成していない場合は機能しません。

たとえば、2つの異なるリポジトリをローカルで複製し、repo2/branch1をrepo1 /にコピーしてから、Pushする必要がありました。

これ リンクは、ローカルブランチ(別のリポジトリから複製された)をリモートリポジトリにプッシュするのに役立ちました。

1
brokenfoot

Githubリモート管理用の正式なgithubページを次に示します http://github.com/guides/Push-a-branch-to-github 。すべての質問に答えるのに役立ちます。

0
dylanfm

tl; dr

$ git Push --set-upstream Origin your_new_branch

詳細情報

あなたにいくつかのコミットを行った後:

$ git checkout -b your_new_branch
$ git add file
$ git commit -m "changed file"

次のようなリモートリポジトリのいずれかにアップストリームを指定してブランチをプッシュします。

$ git Push --set-upstream REMOTE YOUR_BRANCH

リモコンは

$ git remote -v

通常、デフォルトのリモートOriginが1つあります。したがって、コマンドは次のようになります。

$ git Push --set-upstream Origin your_new_branch

そして、すべての結果のプッシュは、git Push

0