【问题标题】:Does git rebase update commits in other local branches?git rebase 是否更新其他本地分支中的提交?
【发布时间】:2013-04-18 16:44:16
【问题描述】:

我知道我可以通过实验进行测试,但是进行讨论会很好。如果我有一个与远程 master 不同的本地负责人(本地分支)master,我倾向于执行git pull --rebase 来重播我的更改。我相信这可以通过稍微改变我当地分支机构的状态来实现。

但是,如果我从一个本地提交分支到一个新的实验分支(远程不存在),那么实验的历史/提交是否会由本地主分支上的变基更新?

一个类似的问题是,当我有两个本地分支 master 和 dev,都跟踪遥控器时。两者都有本地提交,我已经将一些本地提交从 master 合并到 dev 中。现在我 rebase master 以应用于远程之上——这是否会改变我已合并到本地 dev 分支中的提交?我的本地开发分支现在是否会包含我现在在主分支中看到的(以前仅限远程)提交历史记录?

【问题讨论】:

    标签: git commit rebase


    【解决方案1】:

    experimental 的历史/提交是否会被本地 master 分支上的 rebase 更新?

    答案是否定的。在 master 上执行普通的git pull 与执行这两个命令相同...(假设origin 是远程,而您在master 分支上)

    git fetch
    git merge origin/master
    

    当您添加 --rebase 标志时,它会更改 pull 以执行这两个命令...

    git fetch
    git rebase origin/master
    

    如您所见,执行的 rebase 是一个简单的 rebase,没有额外的引用。这是一个简写,git 假设当前分支作为第二个参数。当在master 上以这种方式执行变基时,假定这意味着...

    git rebase origin/master master
    

    上面可以从任何分支甚至无头状态执行,它仍然会导致与使用git rebase origin/master 一样简单,因为第二个参数是目标引用 。引用documentation...

    git rebase master 
    git rebase master topic
    

    注意:后一种形式只是 git checkout topic 的简写 其次是 git rebase master。当 rebase 退出时,主题将保留 签出分支。

    显然,由于当前分支被假定为变基的目标,因此不会影响其他分支。

    一般来说,git 不会对你的所有分支做任何事情。

    你的第二个问题

    很遗憾,我无法按照您的方案进行操作。我要求您将其分解为较小的问题,将其简化为您试图理解的核心。此外,您可能希望在您的场景中创建一个简单的提交历史文本图,类似于在 this question 上所做的。

    我认为这是需要澄清的关键部分......

    “现在我将 master 变基以应用于远程...”

    我们需要了解您所说的“在上面”是什么意思。尝试向我们展示一系列 git 命令,尤其是最后的 rebase。

    也就是说,我对以下问题的回答......

    “我的本地开发分支现在是否会包含我现在在主分支中看到的(以前仅限远程)提交历史记录?”

    ... 可能是肯定的。从任何地方变基到 master 后,您将看到 master 上的提交,这些提交过去只在您变基的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-13
      • 2012-07-03
      • 2019-11-17
      • 2012-03-05
      • 2022-12-03
      • 2022-08-21
      相关资源
      最近更新 更多