git rebase的使用和merg区别

来源:互联网 发布:阿里云 任务调度 编辑:程序博客网 时间:2024/05/29 04:09

rebase使用

rebase和merge都是用来分支合并的,两者都能达到同样的效果,但是稍微的不一样

1.初始化一个仓库

git init 

2.关联远程仓库

git remote add origin https://github.com/sdsjk/Button.git 

3.创建一个 README.md 文件

4.编写README.md 文件,并提交

git commit -m "master 第一次提交

5.创建Tom和lucy两个分支

git branch -b Tomgit branch -b lucy

6.查看当前总共几个分支

git branch 

这时候我们切换到Tom分支

git checkout tom

编写README.md文件并提交

git add .git commit -m  'tom 第一次提交'

这时候Tom分支修改了文件并进行提交。接下来我们的master的分支又有新的内容了。
切换到master分支,修改README.md文件并提交

git checkout mastergit add .git commit -m 'master 第二次提交'

完成之后,切换到tom分支,进行分支合并操作

 git rebase master git rebase --continue

这些命令会把你的”tom”分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到”.git/rebase”目录中),然后把”tom”分支更新 为最新的”master”分支,最后把保存的这些补丁应用到”mywork”分支上。

解决冲突
在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用”git-add”命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:
gitrebasecontinuegit(apply)abortrebasetomrebase git rebase –abort

此时使用 git log 命令查看日志

会发现整个日志很整齐

接下来我们切换到lucy分支,修改文件,并提交

git checkout lucy git add .git commit -m 'lucy 第一次提交'

修完完文件,提交之后,现在用merge 去合并

git merg master处理冲突git add .git commit -m 'lucy 第二次提交'

此时 git log 话会发现日志会比rebase多一些合并的东西。
这里只是做了具体的例子。详细的原理分析
http://gitbook.liuhui998.com/4_2.html