Fetch

本地储存四部分内容, 本地缓存的三部分(workspace, staging area, local repo)以及一个远程仓库分支的引用(使用git remote设置的)

使用git fetch能更新本地的远程分支的引用, 但是不更新本地的local repo. 即, 更新远程commit的索引, 但是这个索引对应的什么内容不更新.

Pull

git pull相当于git fetchgit merge的结合: 首先使用git fetch origin/master更新索引, 然后使用git merge origin/master将远程的更新合并到本地仓库中

可以设置合并的方式: 使用merge或者使用rebase(git pull --rebase)进行合并.