GIT推送是如何工作的?

GIT推送是如何工作的?,git,Git,我有一个大项目(几百MB),如果我使用远程GIT存储库,GIT客户端是否会推送整个目录,即使您只在单个文件中做了一些小更改 谢谢否。Git仅复制自上次推送以来每次提交时所做的更改。否,Git客户端和服务器协商已更改对象的列表,并且只发送这些对象。只有在使用“哑”HTTP服务器并获取包含比客户端上所需对象更多的对象的完整包时,传输的内容才会超出绝对必要的范围 在技术层面上有一些关于协议的细节,如果您关心如何和为什么,应该会给您提供进一步的术语。“推送”是Git同步存储库的方式——在您的情况下,是将

我有一个大项目(几百MB),如果我使用远程GIT存储库,GIT客户端是否会推送整个目录,即使您只在单个文件中做了一些小更改


谢谢

否。Git仅复制自上次推送以来每次提交时所做的更改。

否,Git客户端和服务器协商已更改对象的列表,并且只发送这些对象。只有在使用“哑”HTTP服务器并获取包含比客户端上所需对象更多的对象的完整包时,传输的内容才会超出绝对必要的范围

在技术层面上有一些关于协议的细节,如果您关心如何和为什么,应该会给您提供进一步的术语。

“推送”是Git同步存储库的方式——在您的情况下,是将本地repo与远程服务器上的repo同步

存储库“更新”发生在您提交更改时(实际上,从技术上讲,是在您“添加”时发生的,但这已经超出了需要)。当您提交时,Git只是存储自上次提交以来所做的增量更改的信息(它不是“复制”文件)。但是,在推送之前,该提交仅在本地计算机上进行。推送时,Git只是将您在本地repo中所做的更新与远程服务器上的repo同步


Pro Git非常容易阅读,它会很好地解释如下内容:

此外,发送的所有内容都是增量压缩到单个包中,默认情况下,增量化可以与它知道存在于远程但不在包中发送的对象相关。