なぜ、マジットのプル操作の動作が異なるのですか?

ここでの話は、私たちのワークフローでは、私たちのセントラルリモコン(多くの用途で使用されていますが、特に配備とマニュアルの一環として、奇妙な数のブランチを使用するという作業で magit テストプロセス)。私の地方開発の目的のために、私はこれらの無関係な参照のほとんどを最新に保つ必要はありません。 magit を採用する前に、git磁器を使用するときは、時間を節約してレポを残すために、特定の pull コマンドと fetch -Cluttered。たとえば、 master を更新したい場合は、通常は

git checkout master
git pull origin master
git checkout -

私が magit を採用したとき、私は最初に( magit-pull-from-upstream を使って)引っ張っていく所要時間に悩まされました。時間が経つにつれて、 magit git pull origin コマンドを使って自分のを更新していた( magit-process > master ブランチに移動します。そのコマンドは、マスターを更新するだけでなく、太陽の下のすべてのリモートブランチをフェッチします(これは私が必要としない無意味な参照の多くです)。

push-to-remoteを設定した後で、代わりに magit-pull-from-pushremote を使用するように切り替えることで、この問題を自分で解決しました(つまり、ここで解決策を探しているわけではありません)。それは明らかに、 git pull origin master を使用しています(私は他のコマンドから得ると思います)。

私はこれらの2つのコマンドの異なる動作の説明を探しています。なぜ git pull origin を生成し、 git pull origin master を生成するのでしょうか?なぜ、(私の意見では客観的にもっと役に立つ) git pull origin master をしないのでしょうか?

3
私は時々最新のものにしたくない枝がたくさんある。私はちょうどそれらを一度引っ張って、見て、彼らを忘れてしまった。だから、私はこれらのすべてから最新の変更を引き出したいとは思わない。私はマストだけに興味があります。私は自分がコントロールしていることが大好きです。私のニーズに応じて、1つまたは複数のブランチを更新することができます。
追加された 著者 Ronnie,
"なぜ、両方とも(私の意見では客観的にもっと有用な) git pull origin master をしないのでしょうか? - もちろん、このようにした方が、 "客観的にもっと便利な git pull origin コマンドはどこにあるのですか?"
追加された 著者 alastairs,
私は彼がコードを書いたので、tarsiusだけが質問に明確に答えることができると思いますが、彼は8月まで休暇中に rel="nofollow noreferrer">ですをご覧ください。多分それは単なる見落としであったでしょう。ブランチを与えずに、 magit-fetch-from- {upstream、pushremote} の両方で git fetch を実行することができます。
追加された 著者 alastairs,
@caisah remote.origin.fetch を設定する方法は、どのブランチを引っ張るかを制限するもう1つの方法です。
追加された 著者 alastairs,
@npostavs私は意見を述べたことを知っており、他の人はそうではないと感じるかもしれません。私は私の質問のその側面が完全に客観的ではないとあなたに言わせる必要はありません。最終的に私が質問した理由は、 magit-pull-from-upstream がより自然な選択であるためです。私のコマンドを使用するようにその関数を設定する方法はないようですが、これは私にとっては逆のことです。さらに、明示的にリストしていないブランチを取得したくない理由についての文脈を提供しようとしました。私は誰の状況でもないことを理解しています。
追加された 著者 user10256,

1 答え

magit-pull-from-upstream does not explicitly specify the remote branch because if we did that, then tags that point to commits that are being pulled would not pulled along with the branch (i.e. the commits and the branch ref).

しばらくの間( 2?から 2.6.2 )、リモートブランチは安全上の理由から明示的に指定されていましたが、上記の問題を解決する。

magit-pull-from-pushremote does specify the remote branch because in that case it has to be specified or it might pull from branch.NAME.merge (i.e. the upstream) instead of the branch "with the same name as the local branch".


gitのdwim pullコマンド( git pull または git pull REMOTE )と拡張機能 magit-pull-from-upstream によって、 >、 remote.NAME.fetch を設定します。

1
追加された