不幸的是,经过多年的颠覆工作,我正试着用git做热身。问题如下:
视觉上看起来像;
原创项目:
A->B->C->D->E
我自己的远程分支(x,y,z是我提交的,如果可能的话还原或删除):
A->X->Y->Z->C->D->E
我希望我的分叉遥控器与原始遥控器一样。然而,在我尝试恢复之后(使用git revert [HASH])我一个接一个地提交并将这些恢复推送到我自己的遥控器,看起来拉请求并没有消失。
如果我无法获得解决方案,最后一件事就是删除我的fork,并重新创建原始项目。
在此之前有任何建议吗?
答案 0 :(得分:2)
注意:在PR(GitHub Pull Request)方面,您现在(2014年6月24日)可以轻松取消PR (另见" Reverting a pull request"):
您可以通过点击还原:
轻松恢复GitHub上的拉取请求
系统会提示您使用还原的更改创建新的拉取请求:
答案 1 :(得分:1)
假设您在主分支上并希望删除一些提交,您可以git rebase -i A
运行并从本地仓库中删除不需要的提交。 (there are some good git rebase -i
informations on GitHub)
然后,您可以git push --force origin master:master
用您的本地分支覆盖远程master
分支。 (警告,我也不对丢失的代码负责:P)。
对于你的拉取请求,这是一个GitHub问题而不是git问题,我认为你可以轻松地在网页上关闭它。
F.Y.I。 git revert HASH
实际上创建了一个否定HASH补丁的提交,它并没有像你想要的那样真正还原任何东西;)
答案 2 :(得分:0)
假设您在本地仓库中定义了这两个遥控器:
您想强制从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