Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git还原更改并取消拉取请求_Git_Github - Fatal编程技术网

git还原更改并取消拉取请求

git还原更改并取消拉取请求,git,github,Git,Github,不幸的是,在与subversion合作多年后,我正试图用git热身。问题如下: 我完成了一个远程项目 将提交推送到我自己的远程服务器(现在我想还原或干脆消失!) 我在上述步骤中的更改请求拉取 从视觉上看,它看起来像 原始项目: A->B->C->D->E 我自己的远程分叉(x、y、z是我的承诺,如果可能的话,可以还原或删除): 我希望我的分叉遥控器与原来的遥控器一样。然而,在我尝试一个接一个地还原(使用git revert[HASH])我的提交并将这些还原推送到我自

不幸的是,在与subversion合作多年后,我正试图用git热身。问题如下:

  • 我完成了一个远程项目
  • 将提交推送到我自己的远程服务器(现在我想还原或干脆消失!)
  • 我在上述步骤中的更改请求拉取
从视觉上看,它看起来像

原始项目:

A->B->C->D->E
我自己的远程分叉(x、y、z是我的承诺,如果可能的话,可以还原或删除):

我希望我的分叉遥控器与原来的遥控器一样。然而,在我尝试一个接一个地还原(使用git revert[HASH])我的提交并将这些还原推送到我自己的远程设备之后,拉请求似乎并没有消失

如果我找不到解决方案,最后一件事就是去掉我的叉子,重新开始原来的项目


在这样做之前有什么建议吗?

假设您在主分支上,想要删除一些提交,您可以
git rebase-i A
运行并从本地回购中删除不需要的提交。()

然后,您可以
git push——强制origin master:master
用本地分支覆盖远程
master
分支。(警告,我对由此导致的代码丢失不承担任何责任:P)

对于你的pull请求,这更像是一个GitHub问题,而不是git问题,我认为你可以在网页上轻松地关闭它


F.Y.I.
git revert HASH
实际上创建了一个否定散列补丁的提交,它并没有真正按照您的意图还原任何内容;)

假设您在本地回购协议中定义了这两个遥控器:

  • 来源:指向原始回购协议
  • remote2:指向您自己的个人分叉
如果要强制从
origin/somebranch
更新到
remote2/otherbranch
,可以执行以下操作:

# make sure you have up to date branch data locally
git fetch origin
git fetch remote2

# force push to remote2 from origin
git push remote2 origin/somebranch:otherbranch --force
要将本地分支重置为与远程分支相同的状态,请执行以下操作:

git reset --hard origin/somebranch
注意:就PR(GitHub Pull Request)而言,您现在(2014年6月24日)可以轻松取消PR
(另见“):

通过单击revert,您可以轻松地在GitHub上还原pull请求:

系统将提示您使用还原的更改创建新的拉取请求:


非常有魅力,谢谢。我保证,我永远不会对主分支做任何改进。注意:GitHub现在(2014年6月)有一个PR的“恢复按钮”:请参阅注意:如果:恢复拉请求导致合并冲突原始拉请求最初未在GitHub上合并,您可能需要使用Git手动恢复单个提交(例如,在命令行上使用快进合并)
git reset --hard origin/somebranch