git pull,git clone,git fetch,git rebase

原创 2013年12月02日 23:05:04

刚开始用git,对于clone,pull,fetch,rebase不太明白它们的区别,整理了一下,做个比较

Git Clone

clone将会克隆一个本地厂库,

1
2
3
4
5
$cd newfolder
$git clone git@github.com:whatever/something.git
$git branch
*master
remotebranch

clone会为它被克隆的远程repo创建一个名为“origin”的local repo,并为远程repo的活动分支创建一个本地分支以及远程跟踪分支。

 

Git Pull
据我所知,当你使用git pull时,它将会获取远程服务器(你请求的,无论什么分支)上的代码,并且立即合并到你的本地厂库,Pull是一个高等级的请求,默认会支持Fetch和merge的操作,如果不是为了使用上的方便,你可以完全不使用它。

1
2
3
4
5
$git checkout localbranch
$git pull origin master
$git branch
master 
*localbranch

上面的命令会将远程服务器上的master分支合并到localbranch中。

Git Fetch

fetch和pull很相似,只是fetch不会做任何的合并操作。

1
2
3
4
5
6
$git checkout localbranch
$git fetch origin remotebranch
$git branch
master
*localbranch
remotebranch

因此,fetch指是获取remotebranch,然后创建一个本地copy,你不应该直接对这个copy做任何的操作,而应该应该创建一个本地分支,然后在本地分支上进行工作。

 

git rebase

这个命令相当的cool,你对当前分支所作的任何改变都被保存到一个临时区域,因此你的分支将会和改变之前一样干净。如果你用git pull -rebase,git将会获取远程的改变,遍历当前本地分支,然后替换你当前分支的所有改动。

Finally

如果你在使用过程中遇到了问题,使用git branch -a,它会显示本地厂库的所有分支:本地的,远程的。这是一个很好的杀手锏,请记住,git bracches只是一个pointer。所以为了能够处理这些提交请求,你需要一个本地分支,通过本地分支你可以获取这些提交。

git fetch, git pull, git pull -rebase区别

1、git fetch vs  git pull 都是从远程拉取代码到本地,git fetch只是拉取到本地,git pull不仅拉取到本地还merge到本地分支中。所以git pull是git f...
  • duomengwuyou
  • duomengwuyou
  • 2016年04月20日 13:51
  • 5662

git fetch, rebase,pull,merge 区别

What are the differences between git pull and git fetch? In the simplest terms, git pull does...
  • carolzhang8406
  • carolzhang8406
  • 2015年11月11日 14:41
  • 1541

git clone,push,pull,fetch命令详解。(转载)

本文转载自 http://www.ruanyifeng.com/blog/2014/06/git_remote.html Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能...
  • u012575819
  • u012575819
  • 2016年01月21日 10:30
  • 15944

git随笔四则 - pull v.s. fetch, stash, rebase, merge

比较了一下git fetch和git pull,总结了一下git stash、git rebase和git merge的常用用法。关于更为详细的细节,比如更多的options,还请参阅git的手册。...
  • nirendao
  • nirendao
  • 2016年02月27日 22:11
  • 1245

git fetch, git pull与git rebase比较

1.git fetch git-fetch,从其他Git库的branch或tag或refs下载对象和引用到本地。 特性: 可以同时操作多个Git库默认Git库origin更新.git/F...
  • taiyangdao
  • taiyangdao
  • 2017年05月03日 15:46
  • 327

git rebase 和 git fetch 区别

dev分支状态如下: test分支状态如下: 使git merge test之后: 可见dev分支有了一次新的提交并且test分支之后的提交都当作当前分支的提交依次在log中显示。对test分支...
  • starryninglong
  • starryninglong
  • 2017年02月21日 19:43
  • 1554

Git远程操作详解(clone、remote、fetch、pull、push)

Git远程操作详解(clone、remote、fetch、pull、push)
  • lechengyuyuan
  • lechengyuyuan
  • 2015年12月25日 17:36
  • 2728

git rebase 使用

转自: http://blog.chinaunix.net/uid-26952464-id-3352144.html Git Community Book 中文版书上,摘录如下:   一、基本...
  • WitsMakeMen
  • WitsMakeMen
  • 2014年03月31日 13:13
  • 15404

git clone与git pull区别

最近一直焦虑换工作与面试,自然面试过程中也被问到了很多问题,在一家公司中,被问到了git相关的知识。 面试官提出了git clone 与 git pull有什么区别。由于自己对git的掌握情况不是特...
  • zhou_xiaomiao
  • zhou_xiaomiao
  • 2016年11月16日 13:40
  • 7981

给git pull默认加上rebase功能

git pull时可以加上--rebase参数, 使之不产生Merge点, 保证了代码的整洁, 即: git pull --rebase 但每次都加--rebase似乎有些麻烦,我们可以指定某个分支...
  • zzqhost
  • zzqhost
  • 2017年05月08日 10:25
  • 1629
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:git pull,git clone,git fetch,git rebase
举报原因:
原因补充:

(最多只允许输入30个字)