独书先生 Menu

master提交PR到main分支出现There isn’t anything to compare

master提交PR到main分支出现:There isn't anything to compare.main and master are entirely different commit histories.

解决方案

以下操作会强制覆盖原有代码,所以需要将要保留的内容提前存下来,覆盖后再手动更新上去。

git checkout master
git branch main master -f
git checkout main
git push origin main -f

为何不能合并?

在git checkout main之后会提示你执行git pull,试验发现合并失败,提示:fatal: refusing to merge unrelated histories,应该是和master不允许提交PR到main分支一个意思,没有相同的关联记录,即使代码差不多。

删除不需要的分支

删除本地master分支

git branch -D master

删除远程master分支

git push origin --delete master

如何github commit记录全部清除?

解决

  1. 新建orphan分支
git checkout --orphan latest_branch
  1. 将需要的文件添加到暂存区
git add -A
  1. Commit
git commit -m "..."
  1. 删除main分支
git branch -D main
  1. 将当前latest_branch分支重命名为main分支
git branch -m main
  1. 最后,推送到远程仓库
git push -f origin main

参考

  • https://stackoverflow.com/questions/23344320/there-isnt-anything-to-compare-nothing-to-compare-branches-are-entirely-diffe
  • https://github.com/lishuhao/blog/issues/9