比较常见的场景,在代码提交场景,自己的代码和master冲突了,直接拉取master 解决冲突,很方便快捷,但是这样就会将其他开发同学的commit 拉到我们的分支,团队的代码合入时,需要代码同学帮忙code review,CR代码提交的commit就会比较混乱。
比较常用解决冲突的方法
将自己的commit 合并,在通过变基的方法去合并master
合并merge
在进行变基操作之前,通常需要先将当前分支与目标分支进行合并(merge)。这是因为变基操作会改变当前分支的提交记录,从而可能导致与目标分支的提交记录产生冲突。如果在变基操作之前没有先将当前分支与目标分支进行合并,那么在变基操作中就可能会出现冲突,从而导致变基失败。
git merge --squash
变基rebase
在 Git 中,变基(rebase)是一种将一个分支的提交应用到另一个分支上的操作。变基操作可以将一个分支的提交历史“移动”到另一个分支上,从而使提交历史更加清晰和有序。
具体来说,变基操作会将当前分支的提交“重演”一遍,并将这些提交应用到目标分支上。这个过程中,Git 会自动解决提交冲突,并保留提交历史中的作者和提交时间等信息。
# 执行变基操作
git rebase source_branch
在 Git 中,可以使用 git rebase
命令进行变基操作。如果您在变基过程中遇到了冲突,可以使用 git rebase --continue
命令继续变基操作。
# 执行变基操作
git rebase source_branch# 解决冲突并添加修改的文件到暂存区
git add modified_file# 继续变基操作
git rebase --continue
需要注意的是,如果您在变基过程中遇到了问题,可以使用 git rebase --abort
命令取消变基操作,并回到变基之前的状态。
!!! 比较常用Git 视图化工具在source tree 会在变基过程中卡死,这时候尽量使用命令行去处理
变基结束 推送
最后使用git push --force
命令强制推送变基后的分支到远程仓库。
# 推送变基后的分支到远程仓库
git push --force origin target_branch