Git在浅克隆后推送到新的远程服务器

Git在浅克隆后推送到新的远程服务器,git,github,Git,Github,有可能这样做吗?我有几个分支和相当多的提交,我正在尝试 git-push----所有源代码但我得到的浅更新是不允许的 提前谢谢。不,那是不可能的 拥有卷影克隆意味着它们在存储库中最早的提交是“反向悬挂的”,即它们指向您没有的父提交。这使得您的数据结构无效,因为git通常强制执行一个完整的历史记录——当您指示它创建一个浅层克隆时,它掩盖了这个问题,但仍然存在 您只能推送到已经有您丢失的提交的远程设备 因此,您的解决方案是不允许克隆,然后推送到新的存储库。或者,如果您希望避免在回购协议中包含所有这些

有可能这样做吗?我有几个分支和相当多的提交,我正在尝试
git-push----所有源代码
但我得到的
浅更新是不允许的


提前谢谢。

不,那是不可能的

拥有卷影克隆意味着它们在存储库中最早的提交是“反向悬挂的”,即它们指向您没有的父提交。这使得您的数据结构无效,因为git通常强制执行一个完整的历史记录——当您指示它创建一个浅层克隆时,它掩盖了这个问题,但仍然存在

您只能推送到已经有您丢失的提交的远程设备


因此,您的解决方案是不允许克隆,然后推送到新的存储库。或者,如果您希望避免在回购协议中包含所有这些历史,您可以从自己的上游(希望不是浅层)创建新的存储库,而不必触及自己的存储库,然后将其推入其中

第二个可能的dup的可能重复:似乎在最近的版本中解决了:我相信我的问题是不同的,因为我正在尝试推送到一个新的远程设备,而不是从哪里克隆它。@eckes这些链接都不能回答这个问题。但是可以从本地存储的“浅层克隆”进行克隆。那么,为什么在远程设备上推送的内容会有限制呢?@ceztko,克隆没有问题,那就像复制你拥有的任何东西一样。当你推动的时候,可能会遇到这样的情况,即最终结果没有共同的祖先线。对于其中一个答案中的潜在问题,副本中有一些很好的ASCII图像。我认为该问题提到了推/拉到完整历史存储库的问题,这是一个已删除的限制,因此它不是一个完全重复的问题。这里我们讨论的是一些稍有不同的东西,即使用push在远程重新创建本地存储的浅层克隆,由于您提到的原因,这似乎确实不可能,但这似乎也是一个可以放宽的限制。@ceztko,我同意;我可以看到“-f”行为,你只是强迫它做你想做的事。我认为风险对于
git
开发人员来说太高了(或者只是忽略了…)。