2012-02-18 61 views
4

我有一个大型项目(几百MB),如果我使用远程GIT存储库,GIT客户端是否会推动整个目录,即使您只对一个文件进行小改动?GIT Push如何工作?

谢谢

回答

2

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

8

不,git客户端和服务器协商一个什么对象发生了变化的列表,只有那些被发送。唯一需要传输的信息是绝对必要的,就是使用“哑”HTTP服务器,并获取包含比客户端所需对象更多的对象的完整包。

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

+1

另外,这派一切都是增量压缩成一个包,默认情况下,增量化可以是相对的到它知道的对象,它们都存在于遥控器中,但不在包装中发送。 – Cascabel 2012-02-18 02:58:12

2

“Push”是Git同步存储库的方式 - 就您的情况而言,您可以将本地存储库与一个位于远程服务器上的存储库同步。

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

临Git是一个简单而伟大的阅读,它会很好地解释了这样的事情:http://progit.org/book/