GIT Push如何运作?

时间:2012-02-18 01:02:19

标签: git

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

由于

3 个答案:

答案 0 :(得分:8)

不,git客户端和服务器会协商一个已更改对象的列表,并且只会发送这些对象。唯一一次传输超过绝对必要的时间是使用“哑”HTTP服务器,并获取包含比客户端所需对象更多的对象的完整包。

http://book.git-scm.com/7_transfer_protocols.html在技术层面上对协议有一些细节,如果你关心如何以及为什么,应该给你一个更进一步的术语。

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

存储库“更新”发生在您提交更改时(实际上,从技术上讲,当您“添加”时,但这比必要的更深)。提交时,Git只存储有关自上次提交以来所做的增量更改的信息(它不是“复制”文件)。但是在你推送之前,这个提交只在你的本地机器上进行。当您推送时,Git只是将您在本地仓库中所做的更新与远程服务器上的仓库同步。

Pro Git是一本简单易懂的读物,它可以很好地解释这样的事情:http://progit.org/book/