差异:git clone , git fetch, git pull和git rebase

 

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 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 rebase

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

Finally

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

posted @ 2013-10-31 09:23  ConquerMobileApp  阅读(8573)  评论(0编辑  收藏  举报