用magit从master进行简单的变基?


11

我使用多年的旧版本才将Magit升级到最新版本。经过四处寻找并找出差异之后,所有改进都非常出色。

现在,我只是尝试进行最简单的(非交互式)基础,magit而我不知道该怎么做。此示例来自https://git-scm.com/docs/git-rebase

git checkout topic
git rebase master
  1. 击中 r
  2. 我的主题分支以master的最新更改为基础。

3
选择“其他位置”(按“ e”),然后从那里选择“主”。只是要确保:您将基于 master 分支“主题” (而不是来自)。方法上,Git将寻找“ master”和“ topic”中最年轻的共同祖先,然后对“ topic”中的提交进行工作以将其应用于“ master”中的更改。最后,“ master”将保持不变,但“ topic”将包含对“ master”的更改(我编写此代码的目的是为了防止出现错误,也就是说,如果您认为从master撤退将起到相反的作用)。
wvxvw

2
请注意,如果您为分支机构设置了上游(可以键入b,然后u反复循环以浏览已知选项(origin/master通常)),那么它将成为默认的选项(通过r u)。
phils


感谢您的评论。那确实为我清除了。我通读了Magit的Rebasing页面,但之前没有任何意义。我认为“ onto”一词是问题所在。我现在使用的是“ r”,然后使用“ e”来合并来自master的最新消息,但是知道如何将上游设置为“ b”,“ u”也很有用。
Andrew Goodnough

@wvxvw,您能把那个评论变成答案吗?
tarsius

Answers:


16
  1. 在Magit状态缓冲区中按r (变基)。这将显示带有更多选项的弹出缓冲区。
  2. e (在其他位置)开始在其他分支上重新部署。
  3. 通过回答提示来选择要作为基础的分支(注意:所选分支未修改,当前分支已修改)
  4. 重新设置过程将开始,您现在将在重新设置菜单中拥有更多选项:r继续(解决冲突之后)a中止(重新设置整个重新设置过程,然后重新设置基线)s跳过(例如,有时Git感到困惑) ,当您的提交似乎没有引入任何更改时,当您当前的分支和目标分支都添加相同的修改时,可能会发生这种情况
  5. 您的提交将应用于目标分支中的提交。如果它们不能顺利应用,则会在Magit状态缓冲区中向您显示进度和冲突。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.