【git】git rebase
git merge 与git rebase异同
当要合并两个分叉的分支时,merge的方式是将待合入分支和当前分支不同的部分,在当前分支新建节点,如下图所示

rebase与merge不同,rebase会将合入分支上超前的节点在待合入分支上重新提交一遍,如下图,B1 B2会变为B1’ B2’,看起来会变成线性历史:

使用 rebase(让历史更干净):
git fetch origin
git rebase origin/main
本地提交会“放到远程提交之后”,提交历史更整洁。如果遇到冲突,也需要手动解决,然后:
git rebase --continue
操作步骤解析:
查询命令git status, 会提示哪些文件冲突:
git status
输出类似:
both modified: file1.txt
both modified: file2.txt
打开冲突文件,会看到类似标记:
<<<<<<< HEAD
本地改动
=======
远程改动
>>>>>>> origin/main
- <<<<<<< HEAD → 本地提交的内容
- ======= → 分隔符
- >>>>>>> origin/main → 远程提交内容
2. 解决完冲突后,使用命令git add:
git add file1.txt file2.txt
3. 继续rebase:
git rebase --continue
4. 如果觉得冲突太多或者操作错误,可以放弃 rebase,回到操作前状态:
git rebase --abort
参考资料
3. git rebase命令

浙公网安备 33010602011771号