我使用了git pull
,但出现了合并冲突:
unmerged: _widget.html.erb
You are in the middle of a conflicted merge.
我知道文件的另一个版本是好的,而我的是坏的,所以我的所有更改都应该被放弃。我该怎么做呢?
发布于 2008-09-19 14:33:21
由于您的pull
未成功,因此HEAD
(而不是HEAD^
)是分支上的最后一个“有效”提交:
git reset --hard HEAD
您想要的另一部分是让他们的更改覆盖您的更改。
旧版本的git允许你使用“他们的”合并策略:
git pull --strategy=theirs remote_branch
但这已经被移除了,正如this message by Junio Hamano ( Git维护者)中所解释的那样。正如在the link中所指出的,您可以这样做:
git fetch origin
git reset --hard origin
发布于 2010-03-29 07:16:48
如果你的git版本是>= 1.6.1,你可以使用git reset --merge
。
另外,正如@Michael Johnson提到的,如果你的git版本是>= 1.7.4,你也可以使用git merge --abort
。
一如既往,在开始合并之前,请确保没有未提交的更改。
当存在MERGE_HEAD
时,git merge --abort
等同于git reset --merge
。
当合并正在进行时,会出现MERGE_HEAD
。
此外,关于启动合并时未提交的更改:
如果您在开始合并之前不想提交更改,只需在合并之前执行git stash
操作,并在完成合并或中止合并后执行git stash pop
操作。
发布于 2008-09-19 13:25:10
我想你需要的是git reset
。
请注意,git revert
的含义与svn revert
非常不同-在Subversion中,revert将丢弃您(未提交的)更改,将文件从存储库返回到当前版本,而git revert
将“撤销”提交。
git reset
应该执行与svn revert
等效的操作,即丢弃不需要的更改。
https://stackoverflow.com/questions/101752
复制相似问题