“refusing to merge unrelated histories” failure while pulling to recovered repository
我想出了一个关于Git Push的问题。它以前成功地工作过,但这次失败了。一开始,我在我的主人埃多克斯1〔0〕里。,然后,
- 我用
git remote add origin 来说明我的romote来源,但它提醒我fatal: remote origin already exists. 是什么意思。 - 然后,我用
git remote rm origin (有人告诉我),没关系。 - 然后,我再次使用
git remote add origin https://github.com/***/***.git 。没关系。 - 然后,我用了
git push -u origin master (我试了git push origin master ,但是我以前因为某种原因丢失了我的整个.git ,所以我想这可能是第一次推,我应该加上-u 。但是,它提醒error: failed to push some refs to 'https://github.com/***/***.git' 。 - 然后,有人告诉我,在我使用
push 之前,我应该使用git pull origin master ,我就这样做了。但是,它发出了警告:fatal: refusing to merge unrelated histories 。 - 我在Git中找到了一些拒绝合并无关历史的答案,但似乎不起作用。在我的问题上,它提醒了
fatal: Couldn't find remote ref –allow-unrelated-histories 。
真的不知道怎么做…只是想推…
这不能很快得到答复。
警告:除非您知道什么是不相关的历史并确定您需要它,否则不应使用
据我所知,在您的案例中发生了以下情况:
您已经在某个点上克隆了一个项目
。
然后,由于某种原因,您丢失了本地的.git子目录,其中包含了从
氧化镁
但现在它已经没有任何历史了——看起来整个项目不知从何而来。如果您要求Git合并它们,它将无法说明您的更改在哪里,因此它可以将它们添加到远程项目中,据我所知,它只会报告大量的添加/添加冲突。
现在您应该做的是从您克隆项目的远程历史中找到提交
因此,步骤(假设您现在处于恢复的提交中,没有历史记录):
- 例如,根据提交时间,估计您克隆的作为某些
1? 的commit1 在哪里 - 运行
git diff _1?_..HEAD 并仔细阅读,确保差异只包含您所做的编辑。如果它包含更多,那么您应该选择一个错误的1? ,需要调整它并重复此步骤。 - 在你找到了承诺书
1 之后,你应该把它作为你的父母,做git --reset --soft _1_ ,然后做git commit 。
氧化镁
现在看起来您已经从
尝试将更改提交到本地回购。在把他们推到Github上之前。它可以解决这个问题(我也有类似的问题)。