2011-01-20 9 views
110

git pushを実行するとGitHubリポジトリの変更がプッシュされるようにGitが設定されています。これまで私はマスター支店しか持っていませんでした。ローカルブランチをGitHubにプッシュ

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

git checkout -b my_new_branch 
git commit 

はGitHubのこの枝に私の変更をプッシュです。私はgit pushをしていますか?

私が最初にそれを設定すると、私は実行しなかった:

git config push.default current 
+0

を使用するあなたの質問は正確には何ですか? 'push.default'をそのように設定すると、' git push'は現在のブランチを原点にプッシュします。これはgithubリポジトリです。そこからクローンを作成すると仮定します。 (あなたは 'ブランチで別のリモートを指定することができます。あなたが望むならば、my_new_branch.remote')これを試して、うまくいきませんでしたか? – Cascabel

+1

すべてのローカルブランチを同じリモートブランチにプッシュしたい場合は、git push origin HEAD:remote_branch –

答えて

216

は、私はあなたの原点リモートがあなたのgithubのリポジトリをヒットするように設定されたと仮定すると、git push origin my_new_branchを探していると信じています。

+0

git push https://www.atlassian.com/git/tutorials/sync/git-tutorials/index.htmlプッシュ – vikramvi

+0

ファンタスティック、シンプルでポイント! –

+2

このブランチを他の人と一緒に作業したいので、git pullを実行すると、ブランチのトラッキング情報を設定したいと思うでしょう: 'gitブランチ--set-upstream-to = origin/my_new_branch my_new_branch' – gloriphobia

-9

GitHubマスターリポジトリにプッシュするようにgitを設定していれば、ブランチに関係なくGitHubマスターレポにプッシュされます。

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

+0

私はgit config push.default currentを実行しました。 – Noam

8

ローカルのgitの設定によっては、ブランチをチェックアウトしたものがクローンしていないものや、プッシュしようとしているものがある場合、gitはローカルブランチをプッシュしません。

警告:ここ

は、それが提供するメッセージであるpush.defaultが設定されていません。 Gitの 2.0では暗黙の値が 'matching'から 'simple'に変更されました。 、このメッセージをスケルチし、伝統的な動作を維持するために使用します。

Gitが設定--global push.defaultこのメッセージをスケルチして、今使用新しい動作を採用する

をマッチング:

gitの設定を - global push.default simple

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

Git 2.0以降、Gitのデフォルトはより現実的な '単純な' の動作になります。現在のブランチは、 'git pull'が現在のブランチを更新するために使用するリモートブランチ にプッシュされます。

の情報については、 'git help config'を参照し、 'push.default'を検索してください。 (「シンプル」モードはGitの1.7.11で導入されたあなたは、時にはGitリポジトリの古い バージョンを使用する場合の代わりに、「簡単な」「現在の」 同様のモードを使用してください。)

致命的な

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

git push --set-upstream origin MyLocalBranch 
関連する問題