添加远程设备是否会影响Git存储库的大小?

添加远程设备是否会影响Git存储库的大小?,git,github,Git,Github,我有一把叉子,我想从其他人的叉子中提取更改,并推荐他们可以提取我的更改的方法 为我想从中提取代码的用户添加新的命名遥控器听起来是一个很好的解决方案,但这样做会显著影响本地存储库的大小吗 (我将继续尝试,但我找不到任何关于这方面的信息,所以我想我会询问后代。)(作为术语说明,这些是其他“远程”,而不是“源”;“源”只是为您克隆的存储库设置的远程的默认名称。) 如果您添加了一个远程存储库,它是原始大型存储库的一个分支(并从那里获取),通常只需要很少的额外空间。这是因为git聪明的存储模型。每个文件(

我有一把叉子,我想从其他人的叉子中提取更改,并推荐他们可以提取我的更改的方法

为我想从中提取代码的用户添加新的命名遥控器听起来是一个很好的解决方案,但这样做会显著影响本地存储库的大小吗

(我将继续尝试,但我找不到任何关于这方面的信息,所以我想我会询问后代。)

(作为术语说明,这些是其他“远程”,而不是“源”;“源”只是为您克隆的存储库设置的远程的默认名称。)

如果您添加了一个远程存储库,它是原始大型存储库的一个分支(并从那里获取),通常只需要很少的额外空间。这是因为git聪明的存储模型。每个文件(“blob”)由哈希标识,每个目录(“树”)由blob、树和其中包含的其他对象的哈希标识,提交由包含源代码顶层树的哈希数据标识。因此,所有的历史记录,直到有一个fork为止,都将由具有相同ID的提交来表示,因此没有额外的存储用于这些提交。分歧之后,只有额外的存储空间用于已更改的文件—如果存储库中有大的blob,除非其内容发生更改,否则它们仍将具有相同的散列,因此只存储一次。(即使如此,git在打包对象时也会进行二进制增量压缩,因此将小的更改存储到大文件中应该仍然非常有效。)

如果fork添加了原始存储库中不存在的大型新文件,那么这当然会大大增加所使用的空间量。

(作为术语说明,这些是其他“远程”,而不是“源”;“源”只是为您克隆的存储库设置的远程的默认名称。)

如果您添加了一个远程存储库,它是原始大型存储库的一个分支(并从那里获取),通常只需要很少的额外空间。这是因为git聪明的存储模型。每个文件(“blob”)由哈希标识,每个目录(“树”)由blob、树和其中包含的其他对象的哈希标识,提交由包含源代码顶层树的哈希数据标识。因此,所有的历史记录,直到有一个fork为止,都将由具有相同ID的提交来表示,因此没有额外的存储用于这些提交。分歧之后,只有额外的存储空间用于已更改的文件—如果存储库中有大的blob,除非其内容发生更改,否则它们仍将具有相同的散列,因此只存储一次。(即使如此,git在打包对象时也会进行二进制增量压缩,因此将小的更改存储到大文件中应该仍然非常有效。)


如果fork添加了原始存储库中不存在的大型新文件,那么这当然会大大增加所使用的空间。

获取的源文件越多,本地存储库就越大!它的大小会增加,但由于git存储差异(并且随着分支数量的增加,这个数量会增加),我不希望有很大的增加。您获取的源代码越多,您的本地存储库就越大!它的大小会增加,但由于git存储差异(随着分支数量的增加,这个数量会增加),我不期望会有巨大的增长。感谢您的详细回复!将“起源”编辑为“远程”,很好。感谢您的详细回复!