博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有关GitHub仓库分支的几个问题
阅读量:5796 次
发布时间:2019-06-18

本文共 1367 字,大约阅读时间需要 4 分钟。

众所周知,GitHub通过fork成为一种超级存储库,让你可以看到fork网络中的所有提交,对私人仓库也是如此。举个例子:如果你(Bob)从Alice那fork了一个仓库P,Alice在你fork后使用散列X进行代码提交,你就可以通过 访问这些提交。即使在你的fork被删除了以后,仍然可以通过任何分支访问提交,并且这些提交看起来将永远存在。

GitHub上有人发现这其中存在以下相关问题,并联系了GitHub。GitHub说已经知晓了问题,可以将这些问题公开。

问题1:被移除仓库后仍然能访问这个仓库

在被删除了访问权限后,用户仍然可以继续查看这个仓库中新的提交。这个操作的本意是想在你的访问权限被删除之前可以创建一个私有仓库。但是这样就可以让你通过哈希来访问提交。

根据GitHub文档,如果你删除了某人对你的私有仓库的访问权,GitHub将删除他们的所有分支。对于你在自己账户中fork的仓库来说是这样的,但是对于你在组织中fork的仓库来说不是这样的。

场景:

  • Alice创建了一个私有仓库p
  • Alice在p中添加了Bob的访问权
  • Bob创建了一个组织,叫B-org
  • Bob将p fork进B-org
  • Alice删除了Bob对p的访问权
  • Alice在p中通过哈希X提交了代码
  • 通过访问github.com/B-org/P/tree/X,Bob能看到用哈希X提交的代码。

Bob可以通过哈希访问P中的提交。一旦访问到这个提交,你也可以访问其所有的parent,但不能访问其children。

还有很多方法可以找到这个仓库的提交:

  • 如果这个仓库的所有者有一个GitHub Pro 账号,所有分支的哈希都会显示在Insights -\u0026gt; Network
  • GitHub允许通过URL中的哈希前缀引用提交,因此可以尝试暴力破解16^4的哈希空间(~65k),从github.com/B-org/P/tree/0000github.com / B-org / P / tree / ffff进行迭代(也可以考虑已有的提交)。也可以通过GitHub API完成,但是有一个配额限制。
  • 如果在GitHub注释中输入哈希值的6位前缀,GitHub将自动链接到提交。目前找不到尺寸限制,似乎可以在一条注释中打包超过几千个哈希。请注意,GitHub提到了反对滥用配额。

请注意,这也适用于组织和团队中的私人仓库,尤其组织需要允许用户fork他们的仓库。

如何检查别人是否可以访问我的仓库

经常关注一下自己仓库的fork数。如果有GitHub Pro的账户,可以在Insights -\u0026gt; Network标签下看到用户名。

问题2: 仓库所有者对私有仓库有永久访问权

如果你Fork了一个私有仓库,并从该fork中删除了这个仓库所有者的访问权限,你是希望所有者无法查看你的提交的。但是,他们仍然可以从他们的仓库中查找提交的哈希并创建链接来访问你的提交(像前面提到的一样)。

问题3:私有仓库和协作者数量的问题

免费组织对私人仓库的数量有限制,免费用户在私人仓库中可以添加的协作者数量有限制。但是,如果免费用户将私人仓库fork到组织中,该组织将拥有一个新的私人仓库,那么该组织可以添加他们想要的所有协作者。

参考链接:

转载地址:http://htsfx.baihongyu.com/

你可能感兴趣的文章
CSS——(2)与标准流盒模型
查看>>
MYSQL 基本SQL语句
查看>>
Codeforces 451E Devu and Flowers(容斥原理)
查看>>
P2P行业专业术语(最全)
查看>>
C#中的Marshal
查看>>
网站发的文章有收录 但是没有排名怎么处理
查看>>
linux命令:ls
查看>>
Using RequireJS in AngularJS Applications
查看>>
hdu 2444(二分图最大匹配)
查看>>
shell编程笔记六:实现ll命令
查看>>
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
[nodejs] nodejs开发个人博客(五)分配数据
查看>>
《Linux内核修炼之道》 之 高效学习Linux内核
查看>>
Java数据持久层框架 MyBatis之API学习九(SQL语句构建器详解)
查看>>
30分钟Git命令“从入门到放弃”
查看>>
nginx : TCP代理和负载均衡的stream模块
查看>>
MYSQL数据库间同步数据
查看>>
DevOps 前世今生 | mPaaS 线上直播 CodeHub #1 回顾
查看>>
iOS 解决UITabelView刷新闪动
查看>>
行为型模式:观察者模式
查看>>