git rebase 变基的理解

git rebase 变基的理解

1. rebase翻译:变基

理解:
在git的主要功能就是把某个分支的‘提交commit’提取出来作为‘补丁’,然后把这个补丁提交到你的基底分支(通常是master)。
这样你会发现你的分支提交已经在master分支的前面了。

如果这段不好理解,请看:
http://gitbook.liuhui998.com/4_2.html
https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA


思考:
我们如何具体实操rebase。

情景1:可能远程分支已经有了新的提交,但是你的本地master有了几次提交,本地local分支也有看几次提交。

注意:操作之前先备份代码
注意:操作之前先备份代码
注意:操作之前先备份代码

1. 先提交本地分支

//查看当前分支
git branch 

//切换分支,如果没有local分支,或者已经是在分支,此步骤省略
git checkout xx 

//查看修改情况
(local)git statuts

//加入缓存区
(local)git add -u

//提交
(local)git commit -m 'xxx'

2. 把local的分支基底,提到master分支的前面
(local)git rebase master

//local分支和master分支进行合并(master和local的指针在同一节点)
(local)git chcekout master
(master)git merge local

3.更新远程代码, 如果有冲突则修改冲突
(master)git pull

//如果远程分支和本地master的分支指针不在同一个节点,
//把本地的master分支提到(远程master的前面),rebase

//注意你的local分支指针,如果和master分支指针在不同节点
//还想再次切换会local分支继续开发,
//则在提交完成本次代码后,参考情景2

4. 提交到远程
(master)git push



情景2:本地的local分支还没有修改完成,但是需要更新别人提交的代码
注意:操作之前先备份代码
注意:操作之前先备份代码
注意:操作之前先备份代码

1.在master分支更新代码
2.切换到local分支,然后 git rebase master,如果冲突则修改冲突


git rebase --continue
在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:git rebase --continue
这样git会继续应用(apply)余下的补丁。

在任何时候,你可以用--abort参数来终止rebase的行动,并且"mywork" 分支会回到rebase开始前的状态。
 git rebase --abort

具体请参考官方文档:
http://gitbook.liuhui998.com/4_2.html
https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA

你可能感兴趣的:(git rebase 变基的理解)