Py学习  »  Git

Git如何将其对象的更改反映到文件系统中?

Srishan Bhattarai • 4 年前 • 698 次点击  

我已经经历了 Git Internals 主要了解Git是如何将事物构造成blob、trees和commits的,并且分支是提交的轻量级指针。

我不太了解的部分是Git如何在分支/提交签出期间将这些更改反映到文件系统中。

例如:

考虑两个文件, A.txt B.txt ,致力于 Commit 1 . 除了两个文件外,还有一个文件 C.txt 致力于 Commit 2 .

根据我的理解,对象图将沿着以下几行:

  1. 承诺1 指向 Tree 1 有两个初始文件的斑点- BlobA BlobB
  2. 承诺2 指向 Tree 2 有三个文件的斑点。 布洛巴 布洛布 保持不变,因为他们的内容没有改变,而 BlobC 也会低于 树2 .

现在,如果我现在在 承诺2 并结账至 承诺1 , HEAD 现在指向 承诺1 我们可以遍历指示存储库状态的有向图。现在,文件 C.TXT 不再在文件系统上。

每次签出时,Git如何将对象图的状态反映到文件系统上?

谢谢。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38010
 
698 次点击  
文章 [ 1 ]  |  最新文章 4 年前
torek
Reply   •   1 楼
torek    5 年前

README.txt HEAD

git add README.txt

git checkout master git checkout develop

master git read-tree develop

F

xyz.txt --force git checkout