Eli*_*Eli 5 git merge github pull-request
我实际上对 git 很有经验,但这种奇怪的现象让我感到困惑。
我们有一个受保护的主分支。每次我想添加代码时,我都会从 master 中提取最新的代码,然后基于该代码创建一个新的本地分支。提交我的更改,将它们推送到我的新分支中,然后向 master 提交 PR。
标准的东西。
我在这个特定的存储库中注意到的一件事是,我的分支中得到了越来越多的“更改”,它们只是几天前的合并。
例如,我最新的 PR 有:
Merge branch 'master' of github.com:xxxx/xxxx into master
总共8次,其中最早的一次是11天。在所有这些合并之前,我的一个旧提交已经合并到 master 中,并且我每次创建 PR 时都会看到这个提交。最后是我在分支中添加的单个提交。
当查看更改的文件时,只包含我在分支中实际更改的文件,因此合并我的 PR 完全无害。这很奇怪而且很烦人。
另外,在本地,如果我删除已合并的分支,我会收到警告“包含未合并到 master 中的提交”,尽管实际上并非如此。
每次我创建一个新的 PR 时,旧的提交都是日志中的第一件事,所以我想知道是否有什么问题。
有任何想法吗?即将对我的存储库进行核攻击并重新克隆。
看起来您正在从 master 分支出来,然后没有使用 master 的新更新来更新您的分支。您可以在分支中获取新的提交,并通过变基同步历史记录
我推荐以下易于遵循的过程:
git checkout mastergit pullgit checkout [feature branch]git rebase origin/master -igit push origin [feature-branch] --force在变基步骤中,您可以选择所有提交,也可以使用提交旁边的s或选项来压缩它们,而不是在文本编辑器打开交互式变基时显示在提交旁边的默认值。squashpick
之后,您的 master 分支的历史记录应该与您的功能分支的历史记录同步,并且只有您的提交才会显示(我建议压缩所有这些合并提交 - 如果您遵循此 rebase 工作流程,您甚至不需要执行任何操作合并,你可以只进行变基 - 这不会添加他们自己的提交)。
干杯!