合并
git merge
- 只解决一次冲突,分别对应的是当前分支最新提交和合并分支的最新提交的冲突
- 合并之后产生一个新的提交
- commit信息按照时间顺序合并
git rebase
- 合并不产生新的commit
- 解决冲突的过程是:合并分支的最新提交 && 当前分支第1次提交 ------》 解决冲突并add后的分支 && 当前分支第2次提交…依次解决完所有当前分支的提交。
- commit信息在合并分支的后续依次添加,呈一条线。
- 需要解决多次commit的冲突,以至于重复解决冲突
撤销合并
git reset
- git reset --soft: 将分支回退到指定提交,工作区维持现状不变,暂存区会在现有基础上增加该commit之后的提交。
- git reset --mixed: (默认操作)将分支回退到指定提交,暂存区也被同步为该指定提交,工作区保持不变。
- git reset --hard: 将分支回退到指定分支,暂存区和工作区都会被同步为该指定的提交。
参考原文:https://segmentfault.com/a/1190000019274077