两种方法。
本地先从upstream拉一个branch
git checkout -b <main_branch>
git pull upstream <main_branch>
git checkout <dev_branch>
然后git rebase
git rebase -i <main_branch>
在跳出来的vim中对于需要squash的commit 前面把pick删掉写成s即可
注:这种方法如果upstream和本地对于起始commit都有update会有conflict squash不会成功
先通过git log查看一下要合并到哪个commit
然后简单明了使用
git reset --soft <commit_hash_to_squash_to> && git commit
再加上commit信息然后:x保存成功即可