git fetch git pull 与 git pull --rebase
Posted ESnail
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git fetch git pull 与 git pull --rebase相关的知识,希望对你有一定的参考价值。
1. git fetch 与 git pull
都是从远程拉取代码到本地,git fetch只是拉取到本地,git pull不仅拉取到本地还merge到本地分支中。所以git pull是git fetch与git merge的集合体。
2. git pull 与 git pull --rebase
git pull的默认行为是git fetch + git merge,
git pull --rebase则是git fetch + git rebase.
从目的来说,两者没差别,运行之后, 能获得一样的code base。但从版本管理角度,这两者有各自的使用意义。对比来看,git merge多了一次提交--“合并提交”。git rebase则没有。
git merge:
简单来说,它把两条不同分支历史的所有提交合并成一条线,并在“末端”打个结,即生成一次合并提交。最后形成一条单一的提交线。
git rebase:
根据参数的不同,行为有些差别。但总的来说,它相当于把分叉的两条历史提交线中的一条,每一次提交都捡选出来, 在另一条提交线上提交。最后也形成一条单一的提交线。
表示把本地当前分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把本地当前分支更新 为最新的"origin"分支,最后把保存的这些补丁应用到本地当前分支上。
以上是关于git fetch git pull 与 git pull --rebase的主要内容,如果未能解决你的问题,请参考以下文章