我实际上对git很有经验,但是这种怪异使我感到困惑。
我们有一个受保护的主分支机构。每次我想添加代码时,我都会从master那里获取最新的代码,然后在此基础上新建一个本地分支。提交我的更改,将其推送到我的新分支中,然后将PR恢复为主控。
标准的东西。
在此特定回购中我注意到的一件事是,我在分支中越来越多的“变更” ,而它们只是几天前的合并 strong>。
例如,我最新的PR有:
Merge branch 'master' of github.com:xxxx/xxxx into master
总共8次,最古老的是11天。 在所有这些合并之前,我的一个旧提交已经合并到master中,每次进行PR时,我都会看到此提交。最后是我在分支中添加的单个提交。
在查看更改的文件时,仅包含我在分支机构中实际更改的文件,因此合并我的PR完全没有害处。这很奇怪又烦人。
在本地,如果我删除一个已经合并的分支,我也会收到警告“包含未合并到master的提交”,尽管实际上并没有。
每次我进行新的PR时,旧的提交都是日志中的第一件事,所以我想知道是否有搞砸的事情。
有什么想法吗?即将对我的存储库进行核对并重新克隆。
答案 0 :(得分:1)
您似乎正在从master分支,然后没有使用master的新更新来更新您的分支。您可以在分支中获取新提交,并使用rebase
同步历史记录我建议您遵循以下流程:
git checkout master
git pull
git checkout [feature branch]
git rebase origin/master -i
git push origin [feature-branch] --force
在重新基准化步骤中,您可以选择所有提交,也可以使用提交旁边的s
或squash
选项(而不是显示在您旁边的默认pick
)来压缩它们当文本编辑器为您的交互式基准库打开时提交。
此后,应将您的master分支的历史记录与功能分支的历史记录同步,并且只会显示您的提交(我建议压缩所有这些合并提交-如果您遵循此变基工作流,则甚至不需要要进行任何合并,您可以进行重新设置-不添加自己的提交)。
干杯!