How to undo a git merge with conflicts
我在EDOCX1支〔0〕上。mybranch2来自mybranch1,mybranch2发生了变化。
那么,在mybranch1上,我已经做了git merge --no-commit mybranch2了。它显示合并时存在冲突。
现在我要做的是放弃所有的东西(merge命令),这样mybranch1就会回到原来的状态。我不知道该怎么办。
- 检查最后一次见到这个人的时间是很有帮助的,@artfulrobot。在这种情况下,2011年6月意味着它不太可能被接受。:(
- @Lilbyrdie——是的,但是在他们问了3分钟后,他们给出了答案,并且在两个月内至少重新访问了一次网站。
- 可能是我的副本遇到了合并冲突。如何中止合并?
最新Git:
这将尝试将工作副本重置为合并前的状态。这意味着它应该从合并之前恢复任何未提交的更改,尽管它不能总是如此可靠。通常情况下,您不应该与未提交的更改合并。
1.7.4版之前:
这是较旧的语法,但与上面的语法相同。
1.6.2版之前:
删除所有未提交的更改,包括未提交的合并。有时,即使在支持上述命令的较新版本的Git中,这种行为也很有用。
- 新的语法更直观
- 这也可以,但是--中止听起来更合乎逻辑
- 但对于旧版本的Git,这是使用
- 有时,即使在较新的版本中,您仍然需要使用git reset --merge。我在Git2.2.1中的EDOCX1[0]成功(并且做了正确的事情)的地方,犯了EDOCX1[1]错误(没有做任何更改)。
- 我发现我需要做的是git merge --abort,然后是git reset --merge,当有自动合并冲突从我的藏身处弹出时。
- 通常情况下,git merge --abort对我有效,但是我发现自己处于一个独立的head状态,并且我的一个文件有一个"都已修改"的状态。我想放弃一切,回到一个分支,我不得不对江户十一〔6〕,江户十一〔1〕告诉我没有合并可以中止,(合并头丢失)。
- 这是我去年学到的关于git的最有用的东西!
- 有时,git merge --abort无法恢复您以前的状态,在这种情况下,"旧语法"git reset --hard起了作用。
实际上,值得注意的是,鉴于存在MERGE_HEAD,git merge --abort只相当于git reset --merge。这可以在合并命令的git帮助中读取。
1
| git merge --abort # is equivalent to git reset --merge when MERGE_HEAD is present. |
合并失败后,在没有MERGE_HEAD的情况下,可以用git reset --merge撤消合并失败,但不一定用git merge --abort撤消合并失败,因此它们不仅是同一事物的新旧语法。
就我个人而言,我发现git reset --merge在日常工作中更有用。
- 谢谢,这个信息非常有用。我在一个错误的分支上与git stash apply开始合并,git merge --abort什么也没做(没有MERGE_HEAD),而git reset --merge则做了这个把戏。
- 我见过大约10个人说git merge --abort是git reset --merge的新命令,我遇到了和@geomaster相同的问题,这是非常有用的谢谢!
假设您使用的是最新的Git,
- 好吧,这不适用于1.7.0.7:。必须使用重置——很难使用它
- 你需要更新你的Git版本