[英]Git: How to undo my changes after unsuccessful pull request?
我在Github上对软件包进行了一些更改,然后发送了请求请求。 作者决定不合并我的更改,所以我留下了该包的其他副本。 如何还原更改并使用新代码创建另一个请求,但又不推送被拒绝的代码?
从您的主人的头,上游不想要
$ git checkout -b myunwantedbranch
$ git checkout master
$ git reset --hard upstream/master
您的本地更改现在位于myunwantedbranch分支上,而您的主服务器与上游相同。 (实际上,您正在为此分支创建适当的名称,然后将所有不需要的内容从master分支倒回。)
注意-我是git newb,当遇到几乎相同的问题时,这就是我的工作方式-如果错了,请纠正我。
假设原始存储库(您从中分叉的存储库)与名为上游的远程数据库保持一致,则可以,
git checkout upstream/master
git checkout -b <new-branch>
因此,您将拥有一个新名称的分支,其名称具有“起点”,即原始存储库的主分支所在的状态。
如果此后更新了原始存储库,则可能要先进行提取
git fetch upstream master
git checkout FETCH_HEAD # or upstream/master
git checkout -b <new-branch>
此外,如果您不关心更改,并且希望完全摆脱这些更改,则只需运行
git reset --hard upstream/master # go back to where you were
# before and changes were made
git pull upstream # update your repository
请注意,这最后一个代码段将删除您的更改,并且这些更改将丢失。 因此,仅当您知道自己在做什么时才使用它。
编辑:
我刚刚看到了Dogbert的评论。 该链接描述了如何获取上游master分支以及从那一点开始合并所做的更改。 我介绍了如何创建与上游主分支同步的新分支。 因此,我不太确定您现在需要什么。
我有要提交到存储库的本地提交,但是后来我意识到我仍然有旧提交在以前的请求中被拒绝,因此在推送之前需要撤消它们。
我做了什么:
git checkout -b reverting_changes_branch
git reset --hard upstream/master
git push -f origin master
这是我这样做的安全方法,也许有一种更简单的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.