git merge & git rebase

git merge 合并分支(保留历史提交)

1.切换到我的分支
2.合并develop分支到我的分支

git checkout mybranch

git merge develop

合并后git log查看mybranch,所有历史提交都在。
提交比较完整的保留,如果你的提交比较杂乱,这就成了缺点。而且merge会引入一个合并提交。

git rebase 变基&合并分支(丢弃原始提交,形成线性提交历史)

1.切换到我的分支
2.合并develop分支到我的分支

git checkout mybranch

git rebase develop

合并后git log查看mybranch,提交历史是以最新develop分支为基础的,mybranch自己的提交记录在新基础的后方。即线性提交。
个人理解 rebase可顾名思义,重置基础。意识是以develop为最新基础,merge上mybranch的修改。

交互式的rebase

参数:-i

git checkout feature

git rebase -i master

Rebase的黄金法则

1.不能在公共分支上使用它。比如master,develop。
2.通常用在你自己的独享分支上。

总结

1.想要保存项目完整的历史,并且避免重写公共分支上的commit,使用git merge

2.想要一个干净的、线性的提交历史,没有不必要的合并提交,使用 git rebase

    原文作者:April
    原文地址: https://segmentfault.com/a/1190000012890029
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞