GIT Push如何工作?

4

我有一个很大的项目(几百MB),如果我使用远程GIT仓库,当我只对单个文件进行小改动时,GIT客户端是否会推送整个目录?

谢谢。

3个回答

8
不,git客户端和服务器会协商一个变更对象列表,只传输这些内容。只有在使用“dumb” HTTP服务器时,才会传输比客户端所需更多的对象,并获取包含这些对象的完整数据包。如果你想了解更多技术细节和术语,可以查看http://book.git-scm.com/7_transfer_protocols.html上的内容。

1
此外,所有发送的内容都会被增量压缩成一个单一包,并且默认情况下,增量压缩可以相对于已知存在于远程但未在包中发送的对象进行。 - Cascabel

2

Git只会复制自上次推送以来每次提交所做的更改。


2
"Push" 是 Git 同步代码库的方式,即将本地代码库与远程服务器上的代码库同步。
当您提交更改时,代码库会发生“更新”(实际上是在“添加”时,但这已经深入到不必要的领域了)。当您提交时,Git 只是存储关于自上次提交以来所做更改的增量信息(它不会“复制”文件)。但该提交仅存在于您的本地机器上,直到您进行推送。当您进行推送时,Git 会将您在本地代码库中所做的更新与远程服务器上的代码库同步。
《Pro Git》是一本易读且很棒的书籍,它会很好地解释这些内容:http://progit.org/book/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接