【问题标题】:Github pull requests showing more and more old mergesGithub 拉取请求显示越来越多的旧合并
【发布时间】:2019-11-04 14:50:38
【问题描述】:

我实际上对 git 很有经验,但这种怪异让我感到困惑。

我们有一个受保护的主分支。每次我想添加代码时,我都会从 master 中提取最新的代码,然后在此基础上创建一个新的本地分支。提交我的更改,将它们推送到我的新分支中,然后向 master 提交 PR

标准的东西。

我在这个特定的 repo 中注意到的一件事是我在我的分支中得到了越来越多的“变化”,它们只是 几天前的合并强>.

例如,我最近的 PR 有:

Merge branch 'master' of github.com:xxxx/xxxx into master

总共 8 次,其中最早的是 11 天。 在所有这些合并之前是我的一个旧提交,它已经合并到 master 中,每次我做 PR 时都会看到这个提交。最后是我在分支中添加的单个提交。

查看更改的文件时,只包含我在分支中实际更改的文件,因此将我的 PR 合并到其中是完全无害的。这只是奇怪和烦人。

同样在本地,如果我删除已合并的分支,我会收到警告“包含未合并到 master 中的提交”,尽管实际上并没有。

每次我做一个新的 PR,那个旧的提交是日志中的第一件事,所以我想知道它是否有什么搞砸了。

有什么想法吗?即将删除我的仓库并重新克隆。

【问题讨论】:

    标签: git github merge pull-request


    【解决方案1】:

    看起来您正在从 master 分支出来,然后没有使用 master 的新更新来更新您的分支。您可以在您的分支中获取新的提交,并使用 rebase 同步历史记录

    我推荐以下易于遵循的过程:

    • git checkout master
    • git pull
    • git checkout [feature branch]
    • git rebase origin/master -i
    • git push origin [feature-branch] --force

    在变基步骤中,您可以选择所有提交,也可以使用提交旁边的 ssquash 选项来压缩它们,而不是在文本编辑器打开时显示在提交旁边的默认 pick为您的交互式变基。

    之后,你的主分支的历史应该与你的特性分支的历史同步,并且只有你的提交会显示(我建议压缩所有这些合并提交 - 如果你遵循这个 rebase 工作流程,你甚至不需要要进行任何合并,您可以只做变基——它不会添加自己的提交)。

    干杯!

    【讨论】:

    • 成功了。变基是解决方案。应该尝试过!谢谢你。不断出现的第一个提交正坐在那里等我来挤压。
    • 是的。不幸的是,错误的提交似乎想永远徘徊(迫使我对每一个 PR 进行 rebase),所以我想我会直接删除 repo 并重新克隆。
    • @Eli 新的 repo 副本是否解决了问题?您确定根本原因了吗?
    • 是的!一个新的克隆解决了这个问题。不过,一开始不知道是什么原因造成的。这是一个超级复杂的 monorepo,所以我继续前进。
    猜你喜欢
    • 2021-12-11
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 2013-07-19
    • 1970-01-01
    • 2019-10-06
    相关资源
    最近更新 更多