File io Git签出速度-在钩子下

File io Git签出速度-在钩子下,file-io,filesystems,file-copying,File Io,Filesystems,File Copying,注意:这与如何使用Git无关。。这是关于引擎盖下的工作 你能解释一下Git如何能如此快速地将文件从一个分支签出到另一个分支吗? 例如,假设我有两个分支,每个分支有10Gb的文件。。。 我能够在不到一秒钟的时间内从一家分行结帐到另一家分行 当我签出时,新文件就在磁盘上,可以使用了。 但是,如果我要删除10gb,然后恢复10gb的文件,则需要几分钟的时间 我了解Git对象的基本知识以及Commit'ish、Trees和Blob的工作原理。但是,当签出不同的分支时,需要从Blob中恢复文件,并删除任何

注意:这与如何使用Git无关。。这是关于引擎盖下的工作

你能解释一下Git如何能如此快速地将文件从一个分支签出到另一个分支吗? 例如,假设我有两个分支,每个分支有10Gb的文件。。。 我能够在不到一秒钟的时间内从一家分行结帐到另一家分行

当我签出时,新文件就在磁盘上,可以使用了。 但是,如果我要删除10gb,然后恢复10gb的文件,则需要几分钟的时间

我了解Git对象的基本知识以及Commit'ish、Trees和Blob的工作原理。但是,当签出不同的分支时,需要从Blob中恢复文件,并删除任何现有的未跟踪文件。这怎么会发生得这么快

我假设这是使用某种形式的HDD指针完成的。。
我通读了Git代码,但我的C语言技能已经过时了。

有一些教程详细介绍了这方面的内容。我试着挖一个。这要看树枝之间有多少差别。Git只检出不同的文件。所以,如果所有文件都不同,git将需要一些时间来切换。我试着挖一个。这要看树枝之间有多少差别。Git只检出不同的文件。因此,如果所有文件都不同,git将需要一些时间来切换。