rebase命令可以让开发的时间线保持一条直线。可以避免掉因分支太多然后marge之后时间线混乱的问题。
rebase的原理是抛弃原来的改动,在新的基础上生成新的改动。所以,变基的前提是自己的分支没有推送到orgin(服务器),也就是说,推送过的历史提交最好不要使用编辑。
如果对已提交的历史变更做了变基,那变基之后的本地分支就会被提示需要拉取以前的历史改动。因为当前分支的所有改动已经变成了新的改动,跟之前的历史已经脱离。所以这时候如果遵循提示再拉取就会出现各种问题。
那如果已经造成了这样的结果怎么办呢?简单,把现在的变基完的分支迁出一条新的分支B,然后把原来的分支删除。这个时候,分支B就是符合我们预期的分支,完事合并到主分支(如果我们变基到的分支是主分支)就行了。