昨天我向项目提交了我的第一个拉取请求,实际上是这个:
https://github.com/dotnet/corefx/pull/484
我得到的反馈是我需要清理它,因为我应该有两个提交。列表中的第一个提交是我从主服务器获取最新的更改并将它们合并到我的fork中,它应该永远不会成为我所提出的pull请求的一部分,但似乎我不小心将它包括在内。
鉴于我之前从未做过其中的一项,我如何修改它以删除不必要的提交?阅读我不知道我是不是想改变我的分支,如果是的话,我不知道如何继续。
答案 0 :(得分:2)
您可以使用git rebase -i
删除提交。例如,要删除最后一次提交,请使用
$ git rebase -i HEAD~3
并简单地删除要删除的提交的行。然后用力推。
$ git push origin <branchname> -f
一般情况下,一旦公开发布,不建议更改分支机构的历史记录,而应该“#34; revert&#34;提交。
但是,如果错误地包含它,这是一种可能的选择。
答案 1 :(得分:0)
在项目合作者的帮助下,我们设法更新PR而不进行变基,请阅读以下内容:
https://github.com/dotnet/corefx/pull/484#issuecomment-71073511
我没有完全理解它,但它似乎涉及更新我的fork并创建新的分支以指向正确的HEAD
,然后使用git cherry-pick
来提交我想要的提交在我的分支中的正确位置,然后最后做git push
;然后PR自动更新到所需的状态。