【问题】假设你在txt_main_2分支修改提交,有一个commit点,然后push到远端,准备提交到master分支,发现有3个commit点。
【原因】之所以出现多个commit点是因为,在上一次你的txt_main_1分支同步master分支的时候,直接从mster分支merge到txt_main_1,导致这次提交的时候把有些原来主线的commit点识别成为你当前分支txt_main_1的最新提交点。
【解决方法】
在txt_main_1分支 :
git rebase br_dev_main
git push -f
然后再去提MR就正常了。
git rebase VS git merge
git rebase 和 git merge是git合并分支的两种方式,然而他们却采用了不同的工作方式,以下面的一个工作场景说明其区别:
场景:
下图所示:当feature分支有新的需求提交,同时,master 分支也有修改。
这时,如果要将master 上新的提交合并到你的feature分支上,我们有两种选择:merging or rebasing
merge
执行以下命令:
git checkout feature
git merge master
或者执行:
git merge master feature
此时在feature上git 自动会产生一个新的commit(merge commi