摘要: 在用git进行项目开发的时候,需要与远程服务器进行通信。其中一个经常使用到的地方就是从远程仓库获得存储的对象。我们知道,git pull等于git fetch 和git merge以后的结果。那么git fetch获得的对象放在哪里呢?git fetch又是从哪里获得对象呢?为什么获得的对象和当前目录下的文件没有产生覆盖之类的冲突呢?git merge的工作流程又是什么样的呢?本文,主要为你解答这些疑问。
本文来源:git pull取得远程仓库的对像并刷新、合并本地数据git fetch+get merge
http://blog.csdn.net/trochiluses/article/details/14522383
一、git getch
1.命令简介
git-fetch - Download objects and refs from another repository
2.命令使用语法
git fetch [<options>] [<repository> [<refspec>...]]
git fetch [<options>] <group>
git fetch --multiple [<options>] [(<repository> | <group>)...]
git fetch --all [<options>]
3.命令说明
fetch的地点存储在git根目录下的.git/FETCH_HEAD之中,当然,当我们使用诸如git fetch origin之类的命令的时候,这些fetch的地点可以在.git/config之中找到。一般而言,我们使用git fetch之后,需要使用git merge将这写内容与我们原来进行的修改进行合并。
二、git pull
假设,当我们使用git pull之前,本地分支和服务器上的分支情况如下:
A---B---C master on origin
/
D---E---F---G master
那么,使用git pull将fetch到远程服务器的部分,然后和本地进行合并,形成如下的情况:
A---B---C remotes/origin/master
/ \
D---E---F---G---H master