【问题标题】:Can't push repository after shallow clone浅克隆后无法推送存储库
【发布时间】:2020-07-04 05:07:53
【问题描述】:

我正在尝试将存储库 (https://github.com/LibreOffice/core.git) 导入 Azure Devops,但由于它已损坏提交(历史上的太多

我尝试过的一个解决方案是对本地存储库进行浅层克隆(不包括旧的损坏提交),然后将其推送到 Azure Devops,但我收到错误“不允许浅层更新”,如上一个线程中所述Remote rejected (shallow update not allowed) after changing Git remote URL

所有解决方案都导致必须首先取消 repo。我不能这样做,因为这样做将包括损坏的提交。有没有办法克隆和删除损坏的提交?

【问题讨论】:

  • 你可以下载你想要的状态并删除.git文件夹并上传文件,因为没有git历史记录(你会丢失所有的git历史记录,obv,但上传会工作)
  • 谢谢 - 我假设我不能使用这种方法将来自开源存储库的更新推送到我的更改?或者有没有办法更新新的提交
  • 我假设我只是克隆然后删除 init 文件夹然后再次运行 git init?
  • 我认为你应该可以,git历史不必完全相同才能将更新推送到原点
  • 谢谢,但我该怎么做呢?我已经删除了 git 文件夹,所以它没有历史记录或对旧仓库的引用。如果我将它添加为原点并拉动它不会拉动所有历史记录吗?没有任何历史记录,它如何知道新的变化是什么?

标签: git github azure-devops git-clone git-fetch


【解决方案1】:

您可以尝试git-cherry-pick 挑选一系列提交并跳过损坏的提交:

$ git cherry-pick A^..B 

【讨论】:

    猜你喜欢
    • 2012-07-07
    • 2012-03-30
    • 2012-03-15
    • 1970-01-01
    • 2015-02-21
    • 2021-05-31
    • 2019-03-02
    • 2018-12-02
    • 2018-01-18
    相关资源
    最近更新 更多