我使用了git pull并发生了合并冲突:
unmerged: some_file.txt
You are in the middle of a conflicted merge.
如何放弃对文件所做的更改,只保留已提取的更改?
我使用了git pull并发生了合并冲突:
unmerged: some_file.txt
You are in the middle of a conflicted merge.
如何放弃对文件所做的更改,只保留已提取的更改?
当前回答
我想你需要重置一下。
请注意,git revert意味着与svn revert非常不同的东西-在Subversion中,该revert将丢弃您(未提交)的更改,将文件从存储库返回到当前版本,而git rever“撤消”提交。
gitreset应该执行与svnreset等效的操作,即丢弃不需要的更改。
其他回答
我想你需要重置一下。
请注意,git revert意味着与svn revert非常不同的东西-在Subversion中,该revert将丢弃您(未提交)的更改,将文件从存储库返回到当前版本,而git rever“撤消”提交。
gitreset应该执行与svnreset等效的操作,即丢弃不需要的更改。
另一种保留工作副本状态的方法是:
git stash
git merge --abort
git stash pop
我通常建议不要这样做,因为它实际上就像Subversion中的合并,因为它会在接下来的提交中丢弃分支关系。
如果您的git版本>=1.6.1,则可以使用git reset-merge。
此外,正如@Michael Johnson所提到的,如果您的git版本是>=1.7.4,您也可以使用gitmerge--abort。
一如既往,在开始合并之前,确保没有未提交的更改。
从gitmerge手册页
当存在merge_HEAD时,gitmerge--abort等同于gitreset-merge。
合并过程中,MERGE_HEAD出现。
此外,关于启动合并时未提交的更改:
如果在开始合并之前有不想提交的更改,只需在合并之前将其保存,并在完成合并或中止合并后将其弹出。
对于git>=1.6.1:
git merge --abort
对于旧版本的git,这将完成以下任务:
git reset --merge
or
git reset --hard
git merge --abort
中止当前冲突解决过程,并尝试重建合并前状态。如果合并时存在未提交的工作树更改started,gitmerge--在某些情况下中止将无法重建这些变化。因此,建议始终在运行gitmerge之前提交或隐藏更改。git merge--abort等效于git reset--mergeMERGE_HEAD存在。
http://www.git-scm.com/docs/git-merge