ローカルブランチをGitHubにプッシュする


117

を実行git pushすると、GitHubリポジトリに変更がプッシュされるようにGitが構成されています。今まで私はマスターブランチしか持っていませんでした。

しかし、私は今ローカルブランチを作成し、それを使用してそれにコミットしました:

git checkout -b my_new_branch
git commit

私が今やりたいのは、このブランチの変更をGitHubにプッシュすることです。Gitプッシュを行うだけですか?

私が最初に設定したとき、私は実行しました:

git config push.default current

あなたの質問は正確には何ですか?このようにpush.default設定すると、はい、git push現在のブランチをオリジンにプッシュします。これは、そこからクローンを作成した場合のgithubリポジトリです。(必要にbranch.my_new_branch.remote応じて、別のリモートを指定することもできます。)では、これを試してみましたが、機能しませんでしたか?
Cascabel 2011年

1
すべてのローカルブランチを同じリモートブランチにプッシュする場合は、明示的に指定してください:git push origin HEAD:remote_branch
Ustaman Sangat

回答:


221

git push origin my_new_branchオリジンリモートがgithubリポジトリにアクセスするように設定されていると仮定して、あなたが探していると思います。


git push <remote> <branch>
at

3
あなたの新しいブランチのための追跡情報を設定したいと思うあなたは、したがって、他の人とこのブランチに仕事をしたい場合はgitのプルん: git branch --set-upstream-to=origin/my_new_branch my_new_branch
gloriphobia

9

ローカルのgit設定に応じて、クローンしたブランチではない、またはプッシュしようとしている場所に存在しないブランチがチェックアウトされている場合、gitはローカルブランチをプッシュしません。

これが提供するメッセージです:

警告:push.defaultは設定されていません。その暗黙の値は、Git 2.0で「マッチング」から「シンプル」に変更されました。このメッセージを抑制し、従来の動作を維持するには、次を使用します。

git config --global push.default matching

このメッセージを抑制し、新しい動作を採用するには、次のコマンドを使用します。

git config --global push.default simple

push.defaultが「matching」に設定されている場合、gitはローカルブランチを同じ名前ですでに存在するリモートブランチにプッシュします。

Git 2.0以降、Gitはデフォルトでより保守的な「シンプルな」動作になり、現在のブランチを更新するために「git pull」が使用する対応するリモートブランチに現在のブランチをプッシュするだけです。

詳細については、「git help config」を参照し、「push.default」を検索してください。( 'simple'モードはGit 1.7.11で導入されました。古いバージョンのGitを使用する場合は、 'simple'ではなく、類似のモード 'current'を使用してください)

fatal:現在のブランチMyLocalBranchには上流ブランチがありません。現在のブランチをプッシュし、リモートをアップストリームとして設定するには、次を使用します

git push --set-upstream origin MyLocalBranch


-12

GitHubマスターリポジトリにpushするようにgitを設定している場合は、ブランチに関係なく、GitHubマスターリポジトリにpushします。

多くの開発者が同じリポジトリで作業している場合、競合が発生する可能性があることに注意してください。


私は現在のgitの設定push.defaultを実行していた
ノーム・
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.