简单对比git pull和git pull --rebase的使用-(转)
2018-01-11 15:14
351 查看
使用下面的关系区别这两个操作:
git pull = git fetch + git merge
git pull –rebase = git fetch + git rebase
现在来看看git merge和git rebase的区别。
假设有3次提交A,B,C。
在远程分支origin的基础上创建一个名为”mywork”的分支并提交了,同时有其他人在”origin”上做了一些修改并提交了。
其实这个时候E不应该提交,因为提交后会发生冲突。如何解决这些冲突呢?有以下两种方法:
1、git merge
用git pull命令把”origin”分支上的修改pull下来与本地提交合并(merge)成版本M,但这样会形成图中的菱形,让人很困惑。
2、git rebase
创建一个新的提交R,R的文件内容和上面M的一样,但我们将E提交废除,当它不存在(图中用虚线表示)。由于这种删除,小李不应该push其他的repository.rebase的好处是避免了菱形的产生,保持提交曲线为直线,让大家易于理解。
在rebase的过程中,有时也会有conflict,这时Git会停止rebase并让用户去解决冲突,解决完冲突后,用git add命令去更新这些内容,然后不用执行git-commit,直接执行git rebase –continue,这样git会继续apply余下的补丁。
在任何时候,都可以用git rebase –abort参数来终止rebase的行动,并且mywork分支会回到rebase开始前的状态。
git pull = git fetch + git merge
git pull –rebase = git fetch + git rebase
现在来看看git merge和git rebase的区别。
假设有3次提交A,B,C。
在远程分支origin的基础上创建一个名为”mywork”的分支并提交了,同时有其他人在”origin”上做了一些修改并提交了。
其实这个时候E不应该提交,因为提交后会发生冲突。如何解决这些冲突呢?有以下两种方法:
1、git merge
用git pull命令把”origin”分支上的修改pull下来与本地提交合并(merge)成版本M,但这样会形成图中的菱形,让人很困惑。
2、git rebase
创建一个新的提交R,R的文件内容和上面M的一样,但我们将E提交废除,当它不存在(图中用虚线表示)。由于这种删除,小李不应该push其他的repository.rebase的好处是避免了菱形的产生,保持提交曲线为直线,让大家易于理解。
在rebase的过程中,有时也会有conflict,这时Git会停止rebase并让用户去解决冲突,解决完冲突后,用git add命令去更新这些内容,然后不用执行git-commit,直接执行git rebase –continue,这样git会继续apply余下的补丁。
在任何时候,都可以用git rebase –abort参数来终止rebase的行动,并且mywork分支会回到rebase开始前的状态。
相关文章推荐
- 简单对比git pull和git pull --rebase的使用
- 简单对比git pull和git pull --rebase的使用
- 简单对比git pull和git pull --rebase的使用
- Git的初次使用 ; Git常用命令查询 ; Git push ; Git pull 2011-12-16 17:32 在介绍安装和简单使用前,先看一下百度百科中的简介吧: ———————————
- Eclipse上GIT插件EGIT使用手册之十_Rebase和Merge如何选择的简单解析
- 对比git pull和git pull --rebase
- Eclipse上GIT插件EGIT使用手册之十_Rebase和Merge如何选择的简单解析
- 对比git pull和git pull --rebase
- Git的初次使用 ; Git常用命令查询 ; Git push ; Git pull 2011-12-16 17:32 在介绍安装和简单使用前,先看一下百度百科中的简介吧: ———————————
- EEclipse上GIT插件EGIT使用手册之十_Rebase和Merge如何选择的简单解析
- Eclipse上GIT插件EGIT使用手册之十_Rebase和Merge如何选择的简单解析
- git pull --rebase的使用
- 关于C#线程,线程池和并行运算的简单使用和对比
- Eclipse上GIT插件EGIT使用手册之十一_Fetch和Rebase
- eclipse git插件简单使用
- 抽象工厂模式:简单工厂模式、工厂方法模式对比;在工厂方法模式中使用反射创建对象实例
- 最简单的 Git 使用流程
- git pull 使用法
- git的简单使用
- 使用GIT合并分支: git-merge and git-pull