首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我遇到了合并冲突。如何中止合并?

我遇到了合并冲突。如何中止合并?
EN

Stack Overflow用户
提问于 2008-09-19 13:21:00
回答 10查看 2.2M关注 0票数 3K

我使用了git pull,但出现了合并冲突:

代码语言:javascript
复制
unmerged:   _widget.html.erb

You are in the middle of a conflicted merge.

我知道文件的另一个版本是好的,而我的是坏的,所以我的所有更改都应该被放弃。我该怎么做呢?

EN

回答 10

Stack Overflow用户

发布于 2008-09-19 14:33:21

由于您的pull未成功,因此HEAD (而不是HEAD^)是分支上的最后一个“有效”提交:

代码语言:javascript
复制
git reset --hard HEAD

您想要的另一部分是让他们的更改覆盖您的更改。

旧版本的git允许你使用“他们的”合并策略:

代码语言:javascript
复制
git pull --strategy=theirs remote_branch

但这已经被移除了,正如this message by Junio Hamano ( Git维护者)中所解释的那样。正如在the link中所指出的,您可以这样做:

代码语言:javascript
复制
git fetch origin
git reset --hard origin
票数 2.6K
EN

Stack Overflow用户

发布于 2010-03-29 07:16:48

如果你的git版本是>= 1.6.1,你可以使用git reset --merge

另外,正如@Michael Johnson提到的,如果你的git版本是>= 1.7.4,你也可以使用git merge --abort

一如既往,在开始合并之前,请确保没有未提交的更改。

git merge man page

当存在MERGE_HEAD时,git merge --abort等同于git reset --merge

当合并正在进行时,会出现MERGE_HEAD

此外,关于启动合并时未提交的更改:

如果您在开始合并之前不想提交更改,只需在合并之前执行git stash操作,并在完成合并或中止合并后执行git stash pop操作。

票数 2.2K
EN

Stack Overflow用户

发布于 2008-09-19 13:25:10

我想你需要的是git reset

请注意,git revert的含义与svn revert非常不同-在Subversion中,revert将丢弃您(未提交的)更改,将文件从存储库返回到当前版本,而git revert将“撤销”提交。

git reset应该执行与svn revert等效的操作,即丢弃不需要的更改。

票数 113
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/101752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档