社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

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

Srishan Bhattarai • 5 年前 • 1724 次点击  

我已经经历了 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
 
1724 次点击  
文章 [ 1 ]  |  最新文章 5 年前
torek
Reply   •   1 楼
torek    6 年前

README.txt HEAD

git add README.txt

git checkout master git checkout develop

master git read-tree develop

F

xyz.txt --force git checkout