アップストリームを同時に、またはプッシュせずに設定するには、いくつかの方法があります。
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-missing
Emacsを再起動し--set-upstream
て表示または非表示にする必要があります。
最後に、「上流を設定(そして何もしない)」コマンドを使用して上流を設定できますb uorigin/master
RET。このアプローチを使用する場合、既存のブランチしか選択できないことに注意してください。
しかし、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-remote
RET。:あなたはおそらく同じリモートに、すべての機能ブランチをプッシュするので、しかし、すべての支店のために、それを行うことが一度プッシュリモート設定することをお勧めし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-missing
nilに設定できます。