【问题标题】:Which branch to push to after git rebasegit rebase 后推送到哪个分支
【发布时间】:2017-02-23 10:37:28
【问题描述】:

在我的工作流程中,我有 master 和一个远程分支 branch1。我从branch1 分支出来并创建了branch2。我在branch2branch1 中完成了我的工作,继续让其他开发人员提交更多的东西。完成后,我将我的更改提交给branch2,将我的更改重新设置在branch1 的最新提交之上。 Git 登录 branch2 显示了我在 branch1 的最新提交之上的提交,所以一切看起来都很好。但是在branch1git log 中没有看到我的提交。执行git rebase 后是否必须执行git push?如果是,那么在这种情况下,我是推到branch1 还是branch2??

【问题讨论】:

    标签: git github git-rebase git-push


    【解决方案1】:

    您的更改不会反映在branch1 中,因为它们不是branch1 的一部分。

    在你的情况下,branch2 出现在之后 branch1,所以你看到两者。但branch1 因此之前 branch2。从branch1 的角度来看,branch2 还没有发生。

    你看到的是正确的。如果您使用 master 分支作为“实时”或“最终”分支,您可以将 branch2 合并到主分支:

    git checkout master && git merge branch2
    

    这会将您从两个分支的更改带到master


    另外:branch1 是远程的,branch2 是本地的这一事实在这种情况下并不重要。提交本身在两个地方(因为 git 是分布式的)。 “分支”只是赋予不同提交的名称,以便于管理它们。

    【讨论】:

    • 我可以改用git checkout branch1 && git merge branch2 吗?在一堆检查和东西之前,我们不会合并到 master ......
    • 是的,你可以做到,当然。这会将branch1 在树中向前移动(快进)到branch2 所在的位置,有效地使两个分支相同(指向相同的提交)。
    • 站点注释:gui 对可视化这些东西非常有帮助,尤其是在学习 git 时。我现在最喜欢的是gitkraken.com 但是ymmv。
    • 远程branch1 是如何更新的?如果我登录到 github 并看到branch1 的拉取请求,它不会显示我的重新定位提交...
    • 啊,我明白了。合并后,推送 branch1。这样,origin/branch1 将匹配本地 branch1。
    猜你喜欢
    • 2021-09-17
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 2021-08-20
    • 2018-06-21
    • 2020-04-04
    • 2020-10-14
    • 2016-11-02
    相关资源
    最近更新 更多