合併
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