gpt4 book ai didi

emacs - `pull --rebase upstream` 的 magit(不是原点)

转载 作者:行者123 更新时间:2023-12-05 00:22:54 24 4
gpt4 key购买 nike

假设我们有一个 upstream git 存储库,它是项目的官方主页,以及 origin是我们自己的远程 git 存储库(例如 github fork)。

在命令行上,我会在发布 PR 之前重新定位到 master

git pull --rebase upstream master

但我如何在 magit 中做到这一点? F命令允许 --rebase但这总是违背我的 origin据我所知。

理想情况下,我想使用 F 下的单个命令来执行此操作。菜单,因为它对我来说是一个非常常见的操作。

最佳答案

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 --rebaseF -r F将从配置的分支中拉取。

如果您需要在从不同的存储库中拉取时推送到您自己的个人存储库,您始终可以设置一个单独的 Remote 来进行推送和拉取。据我所知,没有方便的命令包装器,但是如果您编辑 .git/config直接,你会这样做:

[branch "mybranch"]
remote = upstream
pushremote = origin
merge = refs/heads/master

如果您正在这样做,并且将始终重新定位您的本地分支,您甚至可以添加:
rebase = true

并且不必指定 --rebase每次你拉。

如果您想为整个 repo 执行此操作,而不是单个分支,您可以使用:
[remote]
pushdefault = origin

然后让分支从其配置的上游拉取,但推送到您自己的存储库。

关于emacs - `pull --rebase upstream` 的 magit(不是原点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29016343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com