繁体   English   中英

Git:在请求请求失败后,如何撤消我的更改?

[英]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分支以及从那一点开始合并所做的更改。 我介绍了如何创建与上游主分支同步的新分支。 因此,我不太确定您现在需要什么。

我有要提交到存储库的本地提交,但是后来我意识到我仍然有旧提交在以前的请求中被拒绝,因此在推送之前需要撤消它们。

我做了什么:

  1. 创建一个新的分支git checkout -b reverting_changes_branch
  2. 运行git reset --hard upstream/master
  3. 用-f强制推送更改,例如git push -f origin master
  4. 回到我原来的分支并推送了我的提交

这是我这样做的安全方法,也许有一种更简单的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM