git - Github fork 的解释以及它们如何存储文件

标签 git version-control github git-svn

我只是想知道在 github 上完成 fork 后会发生什么。

例如,当我 fork 一个项目时,它会在 github 服务器上复制所有代码,还是只是创建一个指向它的链接?

那么另一个问题: 在 git 中,因为如果你向它添加相同的文件,它会散列所有文件,所以它不需要再次存储文件内容,因为散列已经在系统中,对吗?

github是这样的吗?因此,如果我碰巧上传了与另一个用户完全相同的代码,当 github gits 时,它实际上只是创建一个指向该文件的链接,因为它具有相同的哈希值,或者它是否再次单独保存其所有内容?

任何启示都会很棒,谢谢!

最佳答案

根据 https://enterprise.github.com/releases/2.2.0/notes GitHub Enterprise(我假设是 GitHub)以某种方式在分支之间共享对象以减少磁盘空间使用:

This release changes the way GitHub Enterprise stores repositories, which reduces disk usage by sharing Git objects between forks and improves caching performance when reading repository data.

https://githubengineering.com/counting-objects 上还有更多关于他们如何做的细节。 .

关于git - Github fork 的解释以及它们如何存储文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11974686/

相关文章:

git - Github 操作中的 git remote add 权限被拒绝

git - 为什么我不能使用 gitosis 添加新的存储库?

git - 将所有远程跟踪分支推送到新的远程?

git - 在 git 中为一个空项目创建分支

git - 如何完全删除 merge 的 pull 请求?

node.js - 运行 node.js git hook 时出现 fatal error

git - 如何从 RTC Jazz 迁移到 Git?

windows - TeamCity 替代方案

git - 推/pull 到 Github 在 Android Studio 和 IntelliJ 中被破坏

java - jenkins,使用 jenkins 为项目生成 .jar