Git 两个分支拉取请求Yeild的提交历史完全不同

Git 两个分支拉取请求Yeild的提交历史完全不同,git,github,Git,Github,我已将回购克隆到我的计算机: git clone <repo> 然后我在Github上创建了一个新的回购协议 在我的克隆回购中,我分配了一个远程来源: git remote <new repo> 我得到了两个分支:Github上标记为“默认”的main和master 我开始和师父一起工作。一切都很好,我甚至可以“推动”我的改变。但当我试图创建一个拉请求来将master合并到main中时 我没有收到公关按钮,但收到通知说 没有什么可比的 main和master是完全不同

我已将回购克隆到我的计算机:

git clone <repo>
然后我在Github上创建了一个新的回购协议

在我的克隆回购中,我分配了一个远程来源:

git remote <new repo>
我得到了两个分支:Github上标记为“默认”的main和master

我开始和师父一起工作。一切都很好,我甚至可以“推动”我的改变。但当我试图创建一个拉请求来将master合并到main中时

我没有收到公关按钮,但收到通知说

没有什么可比的

main和master是完全不同的提交历史记录

我试图找到一个解决方案,但由于我缺乏使用Git的经验,我无法确定其中一个是否适合我的问题。这里有许多[例子][1]


如何将更改从master合并到main?

如果新创建的Github repo收到此错误,则可能是在项目创建期间将文件添加到默认的主分支,例如README.md

您的本地主分支确实没有与远程主分支共享的历史记录,并且您无法创建从一个分支到另一个分支的拉取请求

要解决此问题,您需要选中本地获取主分支,然后在其上重新设置主分支的基础,以便它共享主分支的历史:

git fetch
git checkout master
git rebase origin/main

如果您在新创建的Github repo中收到此错误,则很可能是在项目创建期间向默认的主分支添加了文件,例如README.md

您的本地主分支确实没有与远程主分支共享的历史记录,并且您无法创建从一个分支到另一个分支的拉取请求

要解决此问题,您需要选中本地获取主分支,然后在其上重新设置主分支的基础,以便它共享主分支的历史:

git fetch
git checkout master
git rebase origin/main

但是我需要做一个公关。那么怎么做呢?你不能,除非有什么东西在主菜上,而把东西放在主菜上的明智方法是我回答中的说明。在没有提交的全新回购协议中,您不能对main发出拉取请求,这是不可能的。如果您已经在main上放置了一些内容,例如,通过在创建回购期间创建自述文件,那么您确实已经生成了两个没有共享历史的分支,并且您需要在本地签出main,并在创建pull请求之前将您的master重设到main上。如果我分叉我克隆的原始回购,创建一个新的分支并将我的文件复制到这个新的repo中会有帮助吗?所以我的意思是我必须从头开始一个新的回购协议。你可以这样做,但你不必。但我需要做一个公关。那么怎么做呢?你不能,直到有一些东西在主上,而把一些东西放在主上的明智方法是我回答中的说明。在没有提交的全新回购协议中,您不能对main发出拉取请求,这是不可能的。如果您已经在main上放置了一些内容,例如,通过在创建回购期间创建自述文件,那么您确实已经生成了两个没有共享历史的分支,并且您需要在本地签出main,并在创建pull请求之前将您的master重设到main上。如果我分叉我克隆的原始回购,创建一个新的分支并将我的文件复制到这个新的repo中会有帮助吗?所以我的意思是我必须从头开始新的回购协议。你可以这么做,但你不必这么做。