放弃Github上被拒绝拉请求的Git提交
我已经完成了某人的项目并做出了一些承诺。我填写了一个pull请求,但它没有被接受(要么更改不可取,要么作者重写了功能以符合“他的风格”)。现在,我被我的本地fork卡住了,因为它有一些额外的提交,永远不会进入上游。我可以撤销更改集,但是我有两倍的额外提交,并且将不得不永远将它们推送出去。真难看放弃Github上被拒绝拉请求的Git提交,git,github,Git,Github,我已经完成了某人的项目并做出了一些承诺。我填写了一个pull请求,但它没有被接受(要么更改不可取,要么作者重写了功能以符合“他的风格”)。现在,我被我的本地fork卡住了,因为它有一些额外的提交,永远不会进入上游。我可以撤销更改集,但是我有两倍的额外提交,并且将不得不永远将它们推送出去。真难看 放弃这些没有人想要的承诺,让我的叉子回到上游,最好的方法是什么?我知道我可以完全删除fork并重新fork它,但这真的很麻烦,我正在做的任何其他工作都会丢失。返回主分支几步(假设要跳过三次提交),然后通过
放弃这些没有人想要的承诺,让我的叉子回到上游,最好的方法是什么?我知道我可以完全删除fork并重新fork它,但这真的很麻烦,我正在做的任何其他工作都会丢失。返回主分支几步(假设要跳过三次提交),然后通过按-f重写github repo
git reset --hard HEAD~3
git push -f origin master
您可以将回购状态重置为较早的提交。首先确定要将回购重置为哪个承诺:
git log
要将回购重置为该状态,请执行以下操作:
git reset --hard <commit_hash>
我创建了一个分支来完成我所有的工作,例如:feature
。当发出拉取请求时,我会从功能
分支到原始
主
分支执行拉取请求。如果pull请求被拒绝,如您的示例所示,您可以放弃该分支。如果您想进行更多的修改,只需从master
创建另一个分支,并使用它进行修改
我也不会将任何本地更改提交或合并到master
分支。我只使用master
分支与original\u repo
master
分支同步。例:
git checkout master
git fetch original_repo
git merge original_repo/master
这确保了主
分支始终与原始回购的主
分支同步。例如,如果拉取请求被接受并合并到中,当提取和合并发生时,本地master
也将在原始回购中使用所有“已批准”的代码
基本上,使用
master
与原始回购协议的master
同步,并在需要进行编辑时始终从master分支。将这些分支用于原始回购的pull请求。您是否有机会在单独的(分叉的)分支中进行建议的修改?是的,这是一个非常可靠/明智的Git工作流建议,谢谢。使用master
分支进行拉取请求只是在自找麻烦。
$ git remote
origin
original_repo
git checkout master
git fetch original_repo
git merge original_repo/master