【发布时间】:2012-03-09 09:36:10
【问题描述】:
我有一个大型项目(几百 MB),如果我使用远程 GIT 存储库,即使您只对单个文件进行小幅更改,GIT 客户端是否会推送整个目录?
谢谢
【问题讨论】:
标签: git
我有一个大型项目(几百 MB),如果我使用远程 GIT 存储库,即使您只对单个文件进行小幅更改,GIT 客户端是否会推送整个目录?
谢谢
【问题讨论】:
标签: git
不,git 客户端和服务器会协商一个对象已更改的列表,并且仅发送那些对象。您传输超过绝对必要的唯一时间是使用“哑” HTTP 服务器,并获取包含比客户端所需更多对象的完整包。
【讨论】:
没有。 Git 仅复制自上次推送以来您在每次提交时所做的更改。
【讨论】:
“推送”是 Git 同步存储库的方式 - 在您的情况下,将本地存储库与远程服务器上的存储库同步。
在您提交更改时会发生存储库“更新”(实际上,从技术上讲,是在您“添加”时,但这已经超出了必要的范围)。当您提交时,Git 只是存储有关您自上次提交以来所做的增量更改的信息(它不是“复制”文件)。但是在您推送之前,该提交仅在您的本地计算机上。当您推送时,Git 只是将您在本地存储库中所做的更新与远程服务器上的存储库同步。
Pro Git 是一本简单而精彩的读物,它会很好地解释这样的事情:http://progit.org/book/
【讨论】: