本地推送到远程使用git命令是否会压缩数据?

8
我的本地仓库大约有500个文件,总大小约为125MB。我在由"http://repositoryhosting.com/"提供的存储上初始化了git仓库。
我通过Git GUI执行了以下步骤:
- git commit (我的本地仓库) - git remote add - git push
它说它上传到了远程仓库,并且我可以看到文件,但是现在这个仓库的大小只有26MB。
我曾经两次尝试从远程仓库的另一台计算机上进行git clone和git pull。它们似乎只下载了远程仓库中的26MB。但是当我检查该计算机上的文件夹大小时,它显示为125MB。
问题:
1.上传到远程仓库时,“git push”是否会压缩数据? 2.我是否会失去数据? 3.如果我想在多台本地计算机上复制远程仓库以使多人能够在同一项目上工作,我应该使用Git Clone还是Git Pull?
3个回答

7

在上传到远程仓库时,“git push”会压缩数据吗?

会。它会推送差异增量包文件

我会丢失数据吗?

不会。
一旦你开始在一个仓库上工作,你:

  • 在工作树中检出这些打包文件
  • 使用存储在 .git/objects 中未重新打包的添加文件进行工作。
    详见“Git 内部原理 - 打包文件”。

如果我正在尝试在多台本地机器上复制远程仓库,以便多人可以在同一项目上工作,我应该使用 Git Clone 还是 Git Pull?

git clone 用于对该仓库进行初始复制和检出。
然后使用 git pull


你能否详细解释一下最后一个答案? - nitred
1
对于这些机器上的第一次初始化,请使用git clone(每台机器一个克隆)。然后在每个克隆的repo中执行git pull就足以更新这些克隆的repo。 - VonC
git克隆 > 进入Repo > git拉取。希望这听起来不错。非常感谢! - nitred

1
除了已经说明的内容,Git的内容可寻址存储模型自然地去重数据,即相同内容的文件仅存储一次。我非常怀疑这在您的情况下会起作用,但一般来说,取决于您存储的数据类型,这是Git存储相当有效的另一个原因。

0

你不会丢失数据,因为git使用增量编码推送数据。 顺便说一下,你可以通过执行以下操作清理不必要的文件并优化本地仓库:

git gc 

gc的手册页面中:
运行一些当前存储库内的日常维护任务,例如压缩文件版本(以减少磁盘空间并提高性能)和删除不可访问的对象,这些对象可能是由之前调用git add而创建的。

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