【问题标题】:Unable to Push After bfg Cleanerbfg Cleaner 后无法推送
【发布时间】:2019-04-05 00:47:54
【问题描述】:

按照这些步骤从我的repository 中删除了一些内容。

但是,当我发送git push 时,我收到了以下消息:

写入对象:100% (28/28),6.72 KiB | 1.34 MiB/s,完成。 总计 28 个(增量 18),重复使用 18 个(增量 9) 远程:错误:拒绝非快进 refs/heads/master(你应该先拉) 远程:错误:拒绝非快进 refs/heads/multiplicity_refinement(你应该先拉) 到 ssh://path_to_repo/repo_name.git ! [远程拒绝] master -> master(非快进) ! [远程拒绝] multiplicity_refinement -> multiplicity_refinement(非快进) 错误:未能将一些引用推送到 'ssh://path_to_repo/repo_name.git'

【问题讨论】:

  • 请在答案中包含您使用 git 采取的步骤(而不是在链接中)。这个想法是 SO 问题是独立的,并且将来会成为其他人的资源,即使在链接断开之后也是如此。

标签: git bfg-repo-cleaner


【解决方案1】:

默认情况下,Git 拒绝将任何提交推送到现有分支,如果这样做会丢失已推送的提交。当您使用 BFG Cleaner 或任何其他重写历史记录的工具时,您所做的提交将被重写并且看起来与现有提交(它们是)不同。如果您确定要推送这些更改,则需要使用--force 标志:git push --force origin master

您可以运行git push --help 以查看有关--force 的更多信息以及为什么需要它。

【讨论】:

  • 你不要使用像 master 这样的分支名称。从项目历史中过滤/删除所需内容后,您可以签出镜像,然后推送到所有分支。
  • 是的,重点是说明--force 选项的使用及其位置。大概作者知道推送多个分支的能力,因为他们已经这样做了,而现代版本的 Git 中的默认设置是只推送当前分支。
猜你喜欢
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 2018-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-28
相关资源
最近更新 更多