Git撤消合并尝试

时间:2013-09-09 07:02:25

标签: git git-merge git-pull

我有工作目录(#1),其中包含供应商目录(#2)。有一个依赖项,我想手动拉动没有composer(php版本的npm / gem)。我在#1工作,没有保存/提交更改,当我决定要更新#2中的库时。我导航到vendor / myname,并做了git pull repository。

不幸的是,它开始拉动并合并到#1,而不是在供应商文件夹中创建新目录。

现在我有:

  • 带有我的更改的#1文件夹
  • #1文件夹包含我不想从错误的存储库
  • 的文件
  • #1合并冲突,例如composer.json,Readme.md ...(通用文件)

我想“撤消”最后一个git pull而不会丢失我对文件夹#1所做的任何更改。我怎么能这样做?

3 个答案:

答案 0 :(得分:137)

git merge --abort可能就是你要找的东西。

答案 1 :(得分:15)

Modern Git:

git merge --abort

旧版:

git reset --merge

老派(警告:将丢弃所有本地更改):

git reset --hard

但实际上,值得注意的是git merge --abort仅等同于git reset --merge,因为MERGE_HEAD存在。这可以在git help for merge命令中读取。

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在日常工作中更有用。

答案 2 :(得分:1)

使用Git 2.10(2016年第3季度),您将知道该怎么做,因为<html> <head> <meta class="mktoNumber" id="articleSectionSpacerBottom1" mktoname="Article heading spacer bottom" default="30" min="0" max="30" step="5"> <meta class="mktoNumber" id="articleSectionSpacerBottom2" mktoname="Article heading spacer bottom" default="42" min="0" max="30" step="5"> </head> <body> 30 42 </body> </html> 会提出git status选项。

commit b0a61abMatthieu Moy (moy)(2016年7月21日) (由Junio C Hamano -- gitster --合并于commit 5a2f4d3,2016年8月3日)

  

git merge --abort:在适当时建议“status

     

我们已经在冲突的rebase期间建议'git merge --abort'   同样,在“git rebase --abort”的冲突解决过程中建议“git merge --abort”。