git变基--rebase
2016-03-06 17:08
267 查看
变基过程:
两个分支
先考虑不用变基的合并:
合并后:
如果变基:(以下为变基过程)
然后再合并:
一般我们这样做的目的是为了确保在向远程分支推送时能保持提交历史的整洁——例如向某个别人维护的项目贡献代码时。 在这种情况下,你首先在自己的分支里进行开发,当开发完成时你需要先将你的代码变基到
上述变基过程的另一种方式:
这样省去先切换到experiment分支的过程。即便在另一个不相关的分支,也无须去先切换到experiment分支。( git rebase [basebranch] [topicbranch] )
git rebase --onto:
假设你希望将
以上命令的意思是:“取出
然后,合并:
git pull --rebase:
等价于:
两个分支
先考虑不用变基的合并:
$ git checkout master $ git merge experiment
合并后:
如果变基:(以下为变基过程)
$ git checkout experiment $ git rebase master conflict resolve $ git rebase --continue
然后再合并:
$ git checkout master $ git merge experiment
一般我们这样做的目的是为了确保在向远程分支推送时能保持提交历史的整洁——例如向某个别人维护的项目贡献代码时。 在这种情况下,你首先在自己的分支里进行开发,当开发完成时你需要先将你的代码变基到
origin/master上,然后再向主项目提交修改。 这样的话,该项目的维护者就不再需要进行整合工作,只需要快进合并便可。
上述变基过程的另一种方式:
$ git rebase master experiment
confict resolve
$ git rebase --continue
$ git checkout master $ git merge experiment
这样省去先切换到experiment分支的过程。即便在另一个不相关的分支,也无须去先切换到experiment分支。( git rebase [basebranch] [topicbranch] )
git rebase --onto:
假设你希望将
client中的修改合并到主分支并发布,但暂时并不想合并
server中的修改,因为它们还需要经过更全面的测试。 这时,你就可以使用
git rebase命令的
--onto选项,选中在
client分支里但不在
server分支里的修改(即
C8和
C9),将它们在
master分支上重演:
$ git rebase --onto master server client conflict resolve $ git rebase --continue
以上命令的意思是:“取出
client分支,找出处于
client分支和
server分支的共同祖先之后的修改,然后把它们在
master分支上重演一遍”。
然后,合并:
$ git checkout master $ git merge client
git pull --rebase:
$ git pull --rebase
等价于:
$ git fetch $ git rebase origin/master
相关文章推荐
- git命令汇总
- linux基本命令
- vim常用命令
- python
- Latex学习
- LLVM学习
- 输入法(IME)实现原理
- 虚拟机上网之折腾,new经验
- vm中i copied it …
- linux下myeclipse的破解
- flex-servlet交互
- my own 2048——初成
- servlet连接mysql的一些
- ARM第一部分-统一编址&独立编址&哈佛结构&冯诺依曼结构
- c++ string
- MapReduce源代码浅析
- 读书笔记——《黑客大曝光》(4/8)
- python 常用
- python datetime时间差
- python 输出重定向