【问题标题】:How to rebase from parent branch?如何从父分支变基?
【发布时间】:2019-07-21 02:54:53
【问题描述】:

下面是分支X & Y 在 Git 中的当前场景:

   A - B [origin/master]
     \
      C - D - G - H [origin/X]
           \
            E - F [Y]

在哪里,

developer1 正在开发分支X

我正在处理分支Y

XY 的父分支。


当前分支Y 远程指向origin/Y

我想在分支Y 中包含origin/X 的更改,然后再进一步处理分支Y。所以,我想看看,像:

A - B [origin/master]
     \
      C - D - G - H [origin/X]
                   \
                    E1 - F1 [Y]

1) 哪些 git 命令可以重新定位我的分支Y

2) 这个命令(git branch -u origin/X Y) 有什么作用?

【问题讨论】:

    标签: git git-branch git-rebase


    【解决方案1】:

    很简单:

    git checkout Y
    git rebase origin/X
    

    也就是说,假设您将在 某人(其他开发人员)对 X 进行变基(我看到它是在 master 之上变基)之后执行此操作。

    第二个问题:它创建了一个本地分支 Y,其“上游”分支设置为 origin/X。当你尝试像git pullgit pull -r这样的命令时,上游就像Y将用作基础的分支。

    【讨论】:

    • branch X owner rebase from master是否是branch X owner的问题。分支X 所有者没有从master 变基,尽管我建议他。分支Xmaster 后面的7-8 次提交。我只想确保分支X 的最新提交在Y 中。休息是管理层的问题。
    • 跟进第二个问题:git push 是否将更改推送到origin/X
    • 嗯...从最终结果的角度来看,如果您合并或变基,您会得到相同的结果...但是变基允许您通过 从其他分支获取更改将您的修订移动 到另一个分支的顶部...而不是在一个合并修订上合并两个单独的分支。考虑一个功能分支。如果您开发,合并,开发更多,然后合并......然后开发更多然后合并,如果您想将该功能移动到不相关的分支(想想,向后移植该功能)需要什么。您需要在没有合并的情况下挑选修订......
    • ...如果您改用变基,您可以在一行中轻松地移动(变基)您的功能。
    • 是的,如果你尝试推送(不说别的),它会尝试推送上游分支。
    猜你喜欢
    • 2014-12-19
    • 2020-07-04
    • 2021-05-26
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    相关资源
    最近更新 更多