【问题标题】:What is the difference between the rebase in git pull --rebase and git rebase <branchname>?git pull --rebase 和 git rebase <branchname> 中的 rebase 有什么区别?
【发布时间】:2015-03-21 03:36:45
【问题描述】:

在任何分支上开始工作之前,我被教导要对我的 repo 进行 rebase。但我很困惑 git pull --rebasegit rebase &lt;branch&gt; 。两者有什么区别?

【问题讨论】:

    标签: git github git-rebase


    【解决方案1】:

    正如命令所建议的那样,一个拉一个rebase,并使用当前分支的默认上游。另一个只做rebase,并使用指定的分支(不一定是当前分支的上游)。

    这意味着第一个从上游获取所有新提交,然后回滚本地提交,快进到上游头部,然后重新应用本地提交。

    第二个不获取任何内容,它将当前分支重新设置在指定分支之上,而不检查该分支是否已更新。

    git help rebasegit help pull 文档很好地描述了这些内容,您应该阅读它们。

    【讨论】:

    • 从技术上讲,一个fetch和一个rebase。
    • 我从不在交互模式的目的之外使用 rebase 来重命名、压缩或删除本地提交。假设我正在处理与主线不同步的本地分支,那么我使用 git rebase 来支持 git pull --rebase 的真正目的是什么?我有以前的同事,只要他们想推送到原始/主线,他们就会简单地使用 git rebase。我假设仍然检测到合并冲突,但我假设他们会错过测试合并更改的步骤,因为本地没有与拉同步
    • @user1836155 注意:git 2.8(2016 年 3 月)将允许 git pull --rebase=interactive command。见stackoverflow.com/a/29717607/6309
    猜你喜欢
    • 2011-09-11
    • 2011-03-22
    • 2016-10-27
    • 1970-01-01
    • 2020-08-24
    • 2021-02-05
    • 2017-06-30
    • 2014-10-15
    相关资源
    最近更新 更多