为什么我的 GitHub 拉取请求显示不是我的提交?

Ric*_*ard 5 git github

我很困惑为什么 GitHub 拉取请求显示了很多我没有做的提交,当我直接从当前主服务器重新定位时。

我做了以下事情:

git pull 
git checkout -b my-new-branch
Run Code Online (Sandbox Code Playgroud)

当我处理东西时,日子一天天过去,然后:

git add .
git commit -m 'Add my amazing commit'
Run Code Online (Sandbox Code Playgroud)

添加更多提交,然后准备推送:

git fetch
git rebase master
Run Code Online (Sandbox Code Playgroud)

变基运行没有冲突,所以:

git push origin my-new-branch
Run Code Online (Sandbox Code Playgroud)

但是,当我在 GitHub 上打开该分支时,它显示的是我在团队其他成员的 92 次提交之上的提交。当我从 master 重新定位时,为什么它显示这些与 master 不同?

Ric*_*ard 4

好吧,这是因为我没有更新我的本地master,因为我只提取了而没有拉取。哎哟!

我按如下方式解决了这个问题。首先我更新了本地master:

git checkout master
git pull
Run Code Online (Sandbox Code Playgroud)

然后我从最新的 master 副本创建了一个新分支:

git checkout -b my-second-branch
Run Code Online (Sandbox Code Playgroud)

然后我检查了旧分支上我关心的提交的哈希值是什么:

git whatchanged my-new-branch
Run Code Online (Sandbox Code Playgroud)

然后我从第一个分支中挑选出我关心的提交到第二个分支上:

git cherry-pick hashofmyfirstcommit
git cherry-pick hashofmysecondcommit
Run Code Online (Sandbox Code Playgroud)

然后我推送了新分支:

git push origin my-second-branch
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个 PR,并删除了旧分支和旧 PR。

  • 这个答案似乎是一个解决方法,可以让你到达你想要去的地方(干净的 PR),但它涉及大量额外的工作,并且不会阻止问题在未来发生。:( (3认同)