アップストリームを同時に、またはプッシュせずに設定するには、いくつかの方法があります。
magit-push-current-set-remote-if-missingが非nil(デフォルト)の場合は、次のようになります。
Push feature to
p pushRemote, after setting that
u @{upstream}, after setting that
e elsewhere
プッシュするために、origin/feature上流のプレスとしてそのセットuして、RETデフォルトの補完候補を受け入れること。
場合magit-push-current-set-remote-if-missingでnilは、あなたの代わりにこれを見るでしょう。
Push feature to
e elsewhere
p今押した場合、アップストリームが構成されていないことが通知されます(つまり、アップストリームがない場合、アップストリームにプッシュできないことを意味します)。
しかし、もしmagit-push-current-set-remote-if-missingあるnil場合、スイッチのリストを備えています--set-upstreamあなたが使用できるので、P - u pあなたは(第2のpは小文字であることを除いて)に使用されます。ただし、複雑な点が1つあります。値を変更した後、magit-push-current-set-remote-if-missingEmacsを再起動し--set-upstreamて表示または非表示にする必要があります。
最後に、「上流を設定(そして何もしない)」コマンドを使用して上流を設定できますb uorigin/masterRET。このアプローチを使用する場合、既存のブランチしか選択できないことに注意してください。
しかし、push-remoteを設定して、それにプッシュする方が良いでしょう。プッシュリモートの詳細と、それがアップストリームとどのように異なるかについては、情報マニュアルの分岐ノードを参照してください(Webバージョンはまだ更新されていません)。
基本的に、アップストリームブランチは、おそらく機能ブランチが(プッシュではなく、マージまたはリベースによって)マージされるブランチorigin/masterです。そして、push-remoteは、機能ブランチを作業中にプッシュするか、他の誰かがマージできるようにする場所です。ローカルブランチに名前が付けられfeature、push-remoteがmy-forkである場合、使用してそのブランチをP pプッシュすると、にプッシュされmy-fork/featureます。(「push-to-branch」は構成できません。push-remote上のブランチの名前は常にローカル名と同じです。)
したがって、あなたの質問は「アップストリームにプッシュしながら、同時にアップストリームを構成する方法」のようなものでしたが、私の推奨は、アップストリームにはまったくプッシュせず、代わりにプッシュリモートにプッシュすることです。
値を変更していない場合はmagit-push-current-set-remote-if-missing、を使用してプッシュリモートを構成できますP psome-remoteRET。:あなたはおそらく同じリモートに、すべての機能ブランチをプッシュするので、しかし、すべての支店のために、それを行うことが一度プッシュリモート設定することをお勧めしb当時とM-p右のリモートが選択されるまで。
また、通常は上流のブランチを明示的に設定する必要はないはずです。新しいブランチを作成し、リモートブランチを開始点として選択すると、それがアップストリームとして使用されます。
残念ながら、開始点は通常ローカルブランチであり、その場合、Gitはデフォルトでそれを上流として使用しません。しかし、これを一度実行することで簡単に修正できます:
git config --global branch.autoSetupMerge always
デフォルト値はですtrue。これは、「リモートブランチである場合、開始点を上流に設定する」ことを意味します。
ちなみに、プッシュリモートも同様です。これも通常、「新しい」リポジトリで半自動的に設定する必要があります。リポジトリのクローンを作成する場合origin、プッシュリモートとして使用するかどうかを尋ねられます。my-forkプッシュリモートとして使用する必要がある別のリモートを追加する場合を除き、「はい」と答える必要があります。あなたは使用して新しいリモートを追加するとM aし、remote.pushDefaultまだ設定されていない、あなたは、あなたが新しく追加されたリモートプッシュリモコンなどを使用するかどうかを尋ねられます。
これはmagit-clone-set-remote.pushDefaultおよびを使用して設定できますmagit-remote-add-set-remote.pushDefault。
別の詳細オプションはでmagit-branch-prefer-remote-upstream、デフォルトはnilです。これをに設定しt、ローカルブランチを新しいブランチの開始点として選択すると、開始点の上流が(いくつかのルールに従って、doc-stringを参照)の代わりに上流として使用される可能性があります開始点自体。
<remote>/<branch>パーツが誤ってプロンプトから除外されたと思います(このコメントを参照)。その間、magit-push-current-set-remote-if-missingnilに設定できます。