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

 

Fetch和merge的操作,如果不是为了使用上的方便,你可以完全不使用它。

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

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

Fetch

fetch不会做任何的合并操作。

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

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

Git Clone

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

1
2
3
4
5
$cd newfolder
$git
$git branch
*master
remotebranch

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

git rebase

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

Finally

如果你在使用过程中遇到了问题,使用git bracches只是一个pointer。所以为了能够处理这些提交请求,你需要一个本地分支,通过本地分支你可以获取这些提交。