我是GitHub的新手,但我遇到一个问题,即在随后的请求中显示了第一个请求请求所提交的提交。那就是:
拉取请求1(PR1)
我看到提交了:
拉取请求2(PR2)
我看到提交了:
我不知道发生了什么事。
为什么PR1中的提交也出现在PR2中,我该如何解决?
答案 0 :(得分:2)
这是因为您根本没有分支,或者您使用PR1分支作为PR2的起点。
一个选择就是简单地关闭PR1并合并PR2,或者先合并PR1然后再合并PR2。这些选项都可以。在下面的内容中,我假设由于某种原因您无法执行此操作,因此您需要将它们合并为两个单独的PR。
要解决此问题,您需要交互式地基于PR2分支,然后“删除”不需要的提交。
我假设您在pr2branch分支上。
git rebase -i HEAD~~~~
出现一个屏幕,其中包含以下列表的提交:
pick pr2sha1 Commit message pr2sha1
pick pr1sha2 Commit message pr1sha2
pick pr1sha1 Commit message pr1sha1
pick 4dced1f Commit message
您还应该在注释下方看到说明。您应该阅读这些说明。
无论如何,由于您要“删除”与PR1相关的提交,因此请将文本更改为:
pick pr2sha1 Commit message pr2sha1
drop pr1sha2 Commit message pr1sha2
drop pr1sha1 Commit message pr1sha1
pick 4dced1f Commit message
然后保存该文件,然后更新PR:
git push origin pr2branch --force
有关交互式变基的更多信息,请参见here。
为避免下次发生这种情况,请在推动提高PR之前始终执行以下步骤。
(如果主分支称为master,而第二个PR的新分支是new-pr-branch。)
git checkout master
git pull
git checkout -b new-pr-branch
(尽管有些人建议不要使用git pull
,例如here。)