The story here is that I use
magit at work, where our workflow involves the use of a preposterous number of branches on our central remote (used for various purposes, but most notably as part of our deploy and manual testing processes). For my local development purposes, I have no need to stay up-to-date on most of these extraneous references. Before adopting
magit, when using git porcelain I'd generally use specific
fetch commands, both to save time and to leave my repo un-cluttered. Whenever I wanted to update
master, for instance, I'd usually use
git checkout master git pull origin master git checkout -
When I adopted
magit, I was initially puzzled by how long pulling (using
magit-pull-from-upstream) would take. As time went on I eventually discovered (using the
magit-process buffer) that
magit was using the command
git pull origin to update my
master branch. That command, in addition to updating master, fetches every remote branch under the sun (which is lot of pointless references I don't need, remember).
I've solved this issue for myself (i.e. I'm not looking for a solution here) by switching to using
magit-pull-from-pushremote instead, after configuring the push-to remote. That, evidently, uses
git pull origin master (as I expected I'd get from the other command).
I'm looking for an explanation for the different behavior of these two commands. Why would one yield
git pull origin and one yield
git pull origin master? Why wouldn't both do the (in my opinion objectively more useful)
git pull origin master?