Github拉取请求显示越来越多的旧合并

5

我实际上对git非常有经验,但这种奇怪的情况让我感到困惑。

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

标准流程。

我在这个特定的仓库中注意到的一件事是,我在我的分支中越来越多地“收到更改”,它们只是几天前的合并

例如,我的最新PR有:

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

总共8次,最旧的一次是11天前。在所有这些合并之前是我的一个单独的旧提交,它已经合并到了主分支中,并且我每次提交PR都可以看到这个提交。在最后是我在我的分支中添加的单个提交。

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

另外,在本地,如果我删除已合并的分支,我会收到警告“包含未合并到主分支中的提交”,即使实际上并没有。

每次我创建新的PR时,旧提交都是日志中的第一件事,所以我想知道是否有什么问题。

有什么想法吗?我快要放弃我的仓库并重新克隆了。

1个回答

6
看起来你是从master分支开始创建了一个新的分支,但是没有及时更新自己的分支。你可以使用rebase命令来获取master分支上最新的提交记录并同步到你自己的分支中。
我推荐以下简单易行的步骤:
1. git checkout master 2. git pull 3. git checkout [feature branch] 4. git rebase origin/master -i 5. git push origin [feature-branch] --force 在执行rebase操作时,你可以选择保留所有提交记录,也可以使用ssquash选项来将多个提交合并为一个,而不是默认的pick。这样,在完成操作后,你的分支历史记录会与master分支的历史记录同步,并且只会显示你自己的提交记录(我建议将所有合并提交都合并为一个,如果你按照这种rebase工作流程,就不需要进行任何合并操作,只需执行rebase即可,它不会添加自己的提交记录)。
祝好!

做到了。Rebase是解决方案。应该试一下的!谢谢。一直出现的第一个提交一直等着我压缩它。 - Eli
是的。不幸的是,那个错误提交似乎想永远挂在那里(迫使我每次都要重新基于PR进行变基),所以我想我会把repo清除并重新克隆。 - Eli
@Eli 新的代码库副本解决了问题吗?你确定了根本原因吗? - ziff
是的!一个新的克隆修复了这个问题。但是我完全不知道最初是什么原因导致的。由于它是一个超级复杂的单体库,所以我只是继续前进了。 - Eli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接