How to undo a git pull?
我想撤销我的git拉取,因为远程源站上不需要的提交,但我不知道我必须重新设置到哪个版本。
我怎么能在Git拉上远程来源之前回到这个州呢?
- 旁注:您可能会发现它对git fetch upstream很有用,首先,快速查看git diff upstream/branch以了解您将要合并的内容。如果一切正常,则继续执行git merge upstream/branch。
- 如果任何一个hipster brogramer看到你从一个图形用户界面执行git命令,你将失去所有的街头信誉,并被罚一个星期的工资,但github桌面和atom都有安全、简单的按钮,可用于undo提交和复选框,以轻松、清晰地放置和取消文件的存储。guis也是人!
或者比其他答案更明确:
哎呀?
1
| git reset --keep HEAD@{1} |
号
早于1.7.1的Git版本没有--keep。如果使用这种版本,可以使用--hard,但这是一个危险的操作,因为它会丢失任何本地更改。
致评论人
ORIG_HEAD is previous state of HEAD, set by commands that have possibly dangerous behavior, to be easy to revert them. It is less useful now that Git has reflog: HEAD@{1} is roughly equivalent to ORIG_HEAD (HEAD@{1} is always last value of HEAD, ORIG_HEAD is last value of HEAD before dangerous operation)
号
- 在那一点上,和orig_head一样,不是吗?版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
- 头儿和头儿的区别是什么?
- @Hugemeow that would be a fine question.描述这个。在reflog中,当HEAD^时,象征性HEAD的初步价值是目前HEAD的第一次父系修订。这两个节点需要等效(E.G.在一个反抗,一个硬复位,一个分支开关等)。阅读链接文章反思。谢尔
- 电力消费者,用后台逃避手柄:EDOCX1&11)
- 复制这个网站码到您的网站上以设置一个投票箱在您的网站上。
- GIT was definitely authored by/BIN/Bash users."GIT Reset Head@{1}"is敌对语法for CSH derivatives.
- 我想这不仅仅是复制这件毛衣,而且也是我的承诺。
- 我不得不使用EDOCX1
- 你可能需要在那之后做但要小心,在工作目录中会发现所有的变化
- 在毛衣上添加的文件和指针。我的地方变更难道只有一条路能让人不受伤害吗?
- @JMSTER你看上去在做毛衣之前改变了本地的情况?在这种情况下使用autostash。GIT will print the ids of automatically created stashes.我很惊讶你能穿着本地的衣服也许这就是我自然而然地避免的
- @sehe yes,I usually have local change.不在乎他们,不在乎他们,除非他们需要填写一些文件。我会尝试脱身,谢谢你。
- 不要在这里做正确的事情:它改变了什么,它改变了工作树的内容。其他人建议的是,或是git reset --hard,但两者都是危险的命令,任何无法控制的改变都是如此。我建议使用git reset --keep HEAD@{1}INSTEAD:--keep指令GIT来保持不受控制的变化,但它改变了工作树。
- @Matthieumoy adding.我想旗帜是晚点添加的,但是的,这是很好的。
- 我不同意新的判决。即使没有地方变化,也有错误:它不会改变工作树(I.E.It doesn't"reset"the merge in local files)。但我不会在任何情况下重复。
- @Matthieumoy Yeah.这是我一直使用的东西。我之前为什么不提这个切尔斯
- 好了,现在我完全同意了答案。谢谢为了完整起见,我增加了GIT版本的--keep介绍。
- 别这样!It totally crew up local
- 你救了我的一天!非常感谢
- 它比git reset --hard好得多,然后签出修改过的文件
git reflog show应该显示头部的历史。你可以用它来找出你在江户前的位置。然后你可以用你的HEAD来承诺。
- GIT reflog show gave this output:C9E5E4D head@{0}:pull:fast forward 1C86A22 head@{1}:pull origin master:fast forward 05C141A head@{2}:pull:fast forward can I safely reset the head to head@{1}
- 另一个答案是,Sehe有详细的资料说明如何到达那里。
- 这是一个非常有用的故事,在一场灾难之后,就像我的故事里一样。把他们赶出去,在反射中寻找最后的知名度,然后用力推。
- 第一次行动是什么?如果你在HEAD@{1}那里,在那之前,你是怎么回到一个国家的?
- 娱乐休息?
- 这是一个很好的答案+10
这对我很有用。
1
| git reset --hard ORIG_HEAD |
撤消合并或拉:
1 2 3 4 5 6 7 8 9
| $ git pull (1)
Auto-merging nitfol
CONFLICT (content): Merge conflict in nitfol
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard (2)
$ git pull . topic/branch (3)
Updating from 41223... to 13134...
Fast-forward
$ git reset --hard ORIG_HEAD (4) |
。
检查这个:头部和orig_头部在git更多。
找到你想去的承诺书。您可以在Github中找到它,也可以在命令行中键入git log或git reflog show,然后执行此操作。埃多克斯1〔9〕
- 找到承诺的理由?
- 对不起,我已经修好了。
- 这是我在撤消某些操作时使用最多的命令
来自https://git scm.com/docs/git reset documentation/git-reset.txt-undoamergeorpullinsideadirtyworkstree
Undo a merge or pull inside a dirty working tree
1 2 3 4 5 6
| $ git pull (1)
Auto-merging nitfol
Merge made by recursive.
nitfol | 20 +++++----
...
$ git reset --merge ORIG_HEAD (2) |
Even if
you may have local modifications in your working tree, you can safely
say git pull when you know that the change in the other branch does
not overlap with them.
After inspecting the result of the merge, you may find that the change
in the other branch is unsatisfactory. Running git reset --hard ORIG_HEAD
will let you go back to where you were, but it will discard
your local changes, which you do not want. git reset --merge keeps
your local changes.
号
另请参阅https://stackoverflow.com/a/30345382/621690