我在设置 git 远程仓库时犯了错误,从一个完全不同的项目中获取了代码。
幸运的是,没有合并,但现在我的仓库中有两个项目的历史记录,并且我正在尝试找出如何将我的仓库恢复到我犯错误之前的状态。
我一直在阅读有关 reflog、rebase、gc 和其他命令的文章,试图弄清楚哪个命令可以帮助我摆脱我意外获取的东西,但目前还没有任何进展。
看起来我已经在我的仓库中拥有了两个项目的历史记录,但它们是完全独立的。实际上,存在着两个相互平行的提交树,事实上,在查看所有分支时,这就是我在 gitk 中看到的情况:
您可以看到中间的提交与历史记录的开头和结尾的提交没有连接。按日期,它们是交错的,但由于某种原因,gitk 没有显示它们的交错。
孤立的提交(在图片中间)是我想要摆脱的内容,它们似乎没有附加到任何分支。我的仓库中没有任何从任何 HEAD 返回到这组提交的路径。
到目前为止,我已经尝试了以下方法(按顺序尝试,以防有所区别):
git remote prune
git prune
git gc
git gc --aggressive --prune=tomorrow
git remote update --prune
git fetch --all
但是目前还没有什么帮助。有谁能建议我如何从我的存储库中删除这些提交?
git tag -d $(git tag -l)
命令可以删除所有本地标签。 - Manuel