我用git fetch取得了什么?

时间:2011-10-14 17:25:56

标签: git

背景:我已经使用git大约6个月了,我对它在表面层面感到很舒服。然而,我正在做的一些仍然是黑盒伏都教,我想更好地理解。

当我运行

之类的东西时
git fetch upstream
git merge upstream/master

我明白这相当于拉。首先获取一些东西,然后我用它来执行合并。

我不明白的是我在拿什么,这些信息在哪里?我从概念上理解我正在获取上游远程存储库中的所有分支,但似乎信息需要存在于某个地方,而这就是我的大脑和对git的理解只能得出“我用Git Fetch获取的内容” ?“

3 个答案:

答案 0 :(得分:4)

您将表示传入更改的commit objects提取到存储库的本地副本中。实际数据存储在.git目录下,直到您git-merge为止,此时它也将显示在工作目录中。


想知道所有血腥细节吗?查看Pro Git, Chapter 9: Git Internals

答案 1 :(得分:2)

来自fetch的信息填充在.git文件夹中,就像它是另一个分支一样。本地存储库包含有关所有分支的提交的信息,包括从远程存储库获取的分支。

答案 2 :(得分:2)

您正在获取存储在.git/objects目录中的git对象以及有关远程头对象(.git/FETCH_HEAD)的信息。