在magit
中,您可以使用C-u
前缀参数来允许您为推送和拉取操作设置遥控器。你会打字C-u F -r F upstream<RET>
来做到这一点。如果您还需要指定分支名称,则可以将C-u
前缀加倍:C-u C-u F -r F upstream<RET> master<RET>
. 在 Magit 的下一个版本 2.1.0 中,这将在更易于访问的情况下提供,F -r o
而不必使用前缀参数。
如果这太麻烦,我建议在你的.git/config
;中明确设置上游。那么所有的拉动都来自上游。您可以git branch -u upstream/master
在本地分支上执行此操作,或者git branch -u upstream/master mybranch
在其他分支上执行此操作。然后,无论您使用 Magit 还是git
在命令行上,一个简单的git pull --rebase
或F -r F
将从配置的分支中拉取。
如果您需要在从不同的 repo 拉取时推送到您自己的个人 repo,您可以随时为推送和拉取设置单独的遥控器。据我所知,没有方便的命令包装器,但如果你.git/config
直接编辑你的,你会这样做:
[branch "mybranch"]
remote = upstream
pushremote = origin
merge = refs/heads/master
如果您正在这样做,并且将始终重新定位您的本地分支,您甚至可以添加:
rebase = true
并且不必--rebase
每次拉动时都指定。
如果您想为整个 repo 执行此操作,而不是单个分支,您可以使用:
[remote]
pushdefault = origin
然后让分支从其配置的上游中提取,但推送到您自己的存储库。