当我们执行 git pull 时,文件是如何下载的?

when we do git pull how are the files downlaoded?

我的问题是git pull 如何下载不同的文件? 我的意思是我们是先下载 .git 文件夹,然后再下载项目文件还是反向下载? 下载时文件会以某种格式压缩然后解压缩,还是作为单独的文件下载? 还请说明第一次拉取和之后拉取有什么区别git fetch?

when we do git pull how are different files downloaded? I mean are we going to download the .git folder first then the project files or reverse?

都没有。 Git 不传输文件。它以 提交 进行交易。每次提交都是 所有 文件状态的快照。每个提交都是唯一标识的:不仅在您的计算机上,而且在整个宇宙中。每个文件状态都是唯一标识的:不仅在您的计算机上,而且在整个宇宙中。

因此,当您说 git pull origin mybranch 或它的缩写版本时,您机器上的 Git 会与远程服务器上的 Git 对话,并确定哪些提交可以在此分支上访问在远程服务器上但不在您的本地计算机上,并且只传输那些提交。

此外,传输可以节省space(带宽)。如果要传输的提交引用(“包含”)处于特定状态的特定文件,并且如果要传输的另一个提交引用处于相同状态的同一文件,则远程 Git 知道您没有不需要相同数据的另一个副本。而且,如果您已经有一个提交指向某个状态下的某个文件,并且如果要传输的提交指向同一状态下的同一文件,则远程 Git 知道您已经拥有的提交,知道您不需要相同数据的另一个副本。