私はローカルのgitリポジトリに取り組んでいます。 master
とfeature_x
の2つのブランチがあります。
feature_x
をリモートリポジトリにプッシュしたいのですが、master
ブランチの変更をプッシュしたくはありません。
私のgit Push Origin feature_x
ブランチからのfeature_x
(feature_x
ブランチは既にリモートに存在します)は動作しますか?
今はマスターにプッシュできないので、私は自分のボックスでこれをテストしたくありません。
はい、ただ以下のようにしてください。
git checkout feature_x
git Push Origin feature_x
デフォルトでは、git Push
はすべてのリモートブランチを更新します。しかし、現在のブランチだけをアップストリームにアップデートするようにgitを設定することができます。
git config Push.default upstream
Git Pushを実行すると、gitは現在の(チェックアウトされた)ブランチだけを更新します。
他の有効なオプションは以下のとおりです。
nothing
:refspecが明示的に与えられているの場合を除いて、何もプッシュしない(エラー出力)これは主に常に明示的であることによって間違いを避けたい人のためのものです。matching
:両端に同じ名前を持つすべてのブランチをプッシュします。 (Ver 1.7.11より前のデフォルトオプション)upstream
:現在のブランチを上流のブランチにプッシュします。このモードは通常あなたがプルするのと同じリポジトリにプッシュしている場合にのみ意味があります(すなわちセントラルワークフロー)。 同じ名前を持つ必要はありませんローカルブランチとリモートブランチの場合。tracking
:非推奨です。代わりにupstream
を使用してください。current
:受信側で現在のブランチを同名のリモートブランチにプッシュします。中央ワークフローと非中央ワークフローの両方で機能します。simple
:[Ver 1.7.11以降で利用可能]集中ワークフローでは、上流ブランチの名前がローカルのものと異なる場合にはPushを拒否するための安全性を追加してupstream
のように動作します。通常引っ張っているリモコンとは異なるリモコンにプッシュするときは、current
のように動作します。これは最も安全なオプションであり、初心者に適しています。このモードはGit 2.0ではデフォルトになりました。Karthik Bose's answer - あなたのすべてのワークスペースに影響を与えるようにgitをグローバルに設定することができます。
git config --global Push.default upstream