【问题标题】:git push wrong repositorygit push 错误的仓库
【发布时间】:2012-08-15 15:01:12
【问题描述】:

我们目前有两个存储库。存储库 A 大约 100M。存储库 B 大约是 3G。 我们遇到了这样一种情况,即 repo B 的开发人员配置了一个指向 repo A 的远程并将一个分支(称为 repo_B_branch)推送到 repo A。

现在这将回购 A 的大小增加到 3G+。不好。

Repo A 已将 receive.denynonfastforward 设置为 true。这不应该拒绝在 repo A 上创建 repo_B_branch 吗? git 不应该阻止推送与 master 不共享共同祖先的分支吗?

【问题讨论】:

  • 它们是否都有相同的“空白”根提交?
  • 不,他们不共享同一个房间提交。不过,我不确定您所说的“空白”是什么意思。 repoA 的根提交和 repoB 的根提交中添加的文件完全不同。
  • 如果 DAG 最根的 sha1 由于某些公司管理而最终是相同的,例如他们克隆/复制了一个空的仓库(初始提交持有公司 IPR 和许可证文件),然后您的所有仓库都可以链接到任何其他....
  • 我的另一个想法是它被视为孤儿分支,但我还没有研究过其中涉及的问题。
  • 我认为为了避免这种情况,您可能需要在服务器上添加一个预接收挂钩来拒绝这些推送。不要认为这是默认可配置的。

标签: git hook push


【解决方案1】:

denynonfastforward 防止用其中没有现有分支历史记录的新版本分支替换现有分支。如果开发人员推送了一个在存储库中不存在的分支,使其成为“新”分支,那么它不会被拒绝,无论它是否与存储库中的其他任何东西有共同的祖先(如果它没有共同祖先,然后它被创建为孤立或断开的分支)。

【讨论】:

  • 是的,就是这样。用户推送了一个新分支。是否有防止此类推送发生的选项?
  • 据我所知,没有编写钩子来检查在接受之前推送的内容(更新或更新后钩子)。
猜你喜欢
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-10
  • 2012-01-05
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多