web-dev-qa-db-ja.com

どのようにして1つのGitブランチだけをプッシュしますか(他のブランチは不可)。

私はローカルのgitリポジトリに取り組んでいます。 masterfeature_xの2つのブランチがあります。

feature_xをリ​​モートリポジトリにプッシュしたいのですが、masterブランチの変更をプッシュしたくはありません。

私のgit Push Origin feature_xブランチからのfeature_xfeature_xブランチは既にリモートに存在します)は動作しますか?

今はマスターにプッシュできないので、私は自分のボックスでこれをテストしたくありません。

223
Rafael Mueller

はい、ただ以下のようにしてください。

git checkout feature_x
git Push Origin feature_x
349
cpjolicoeur

デフォルトでは、git Pushはすべてのリモートブランチを更新します。しかし、現在のブランチだけをアップストリームにアップデートするようにgitを設定することができます。

git config Push.default upstream

Git Pushを実行すると、gitは現在の(チェックアウトされた)ブランチだけを更新します。

他の有効なオプションは以下のとおりです。

  • nothingrefspecが明示的に与えられているの場合を除いて、何もプッシュしない(エラー出力)これは主に常に明示的であることによって間違いを避けたい人のためのものです。
  • matching:両端に同じ名前を持つすべてのブランチをプッシュします。 (Ver 1.7.11より前のデフォルトオプション)
  • upstream:現在のブランチを上流のブランチにプッシュします。このモードは通常あなたがプルするのと同じリポジトリにプッシュしている場合にのみ意味があります(すなわちセントラルワークフロー)。 同じ名前を持つ必要はありませんローカルブランチとリモートブランチの場合。
  • tracking:非推奨です。代わりにupstreamを使用してください。
  • current:受信側で現在のブランチを同名のリモートブランチにプッシュします。中央ワークフローと非中央ワークフローの両方で機能します。
  • simple:[Ver 1.7.11以降で利用可能]集中ワークフローでは、上流ブランチの名前がローカルのものと異なる場合にはPushを拒否するための安全性を追加してupstreamのように動作します。通常引っ張っているリモコンとは異なるリモコンにプッシュするときは、currentのように動作します。これは最も安全なオプションであり、初心者に適しています。このモードはGit 2.0ではデフォルトになりました。
65
Karthik Bose

Karthik Bose's answer - あなたのすべてのワークスペースに影響を与えるようにgitをグローバルに設定することができます。

git config --global Push.default upstream
6
Bhaskar