Github 拉取请求:没有什么可以比较的

Github Pull Request: There isn't anything to compare

我有一个 master 分支,add_db 分支用于一个简单的项目。我已完成所有代码编辑并推送 add_db。但是,我想将所有这些提交合并到我的主分支中。当我尝试在 github 上创建拉取请求时,我收到一条错误消息:没有任何东西可以比较。

我确定我有 base:master compare:add_db.

我该怎么做才能解决这个问题?

这是上下文的存储库: https://github.com/boxcarcoder/Task-List

我在另一个 post 上看到我可以使用 git rebase --onto 或 git cherry-pick 但我不确定如何使用它们。我是 git 的新手。感谢您花时间阅读本文。

Git commits are linked list of commits with later commit having and branches are pointers to the commit reference of previous commit. C1<-C2<-C3<-C4<-C5

如果您的子分支源自父分支,您可以创建合并请求。

         master
          |
          v
 C1<-C2<-C3    new_branch
          ^       |
          |       v
          C4<-C5<-C6

如果你看到两个分支的提交历史,它们的第一次提交(头提交)是不同的。 所以你不能创建合并请求,因为两个分支都是从不同的历史开始的。

你的情况:

      master
        |
        v
C1<-C2<-C3

C4<-C5<-C6
         ^
         |
      add_db

在您的情况下,您只需比较并合并它们,因为合并它们将创建一个新的合并提交并对齐提交历史记录。

master: C1<-C2<-C3
                   \
                   C7(merge commit)
                   /
add_db: C4<-C5<-C6

还要确保您总是从其他分支创建新分支。

我做了一个 git merge add_db 来合并分支,然后 git pull (git url) master --allow-unrelated -histories 将我的本地 master 分支更新到我的远程 master 分支。现在我的本地 master 分支有 add_db 的提交并且与我的远程提交是最新的,我现在可以 git push --set-upstream origin master。我的 github 的 master 分支现在有我的 add_db.

的提交

本质上,我必须进行合并、拉取,然后推送以更新 github 中远程的主分支。