撤消本地更改并强制从远程检出需要合并的文件

时间:2014-01-30 22:11:48

标签: git

stash编辑了我的本地更改,以便与远程同步。在pull之后,我继续pop存储:

>git stash pop
Auto-merging somedir/someFile.xyz
CONFLICT (add/add): Merge conflict in somedir/someFile.xyz

假设我意识到我要放弃对somedir/someFile.xyz的所有更改,只需从遥控器中引入该版本即可。我试过了

>git checkout somedir/someFile.xyz
error: path 'somedir/someFile.xyz' is unmerged

如何撤消我的本地更改并强制从远程显示需要合并的文件?

3 个答案:

答案 0 :(得分:1)

你应该尝试使用git提供的一些开关,如:

git checkout --ours somedir/someFile.xyz

git checkout --theirs somedir/someFile.xyz

据我所知,--ours开关会带来HEAD--theirs开头的文件版本{{1}}开关将应用您输入的文件中存储的更改。

答案 1 :(得分:0)

签出时使用强制选项。

来自git --help checkout -

  

-f, - force切换分支时,即使索引或工作树与HEAD不同,也要继续。这用来扔掉当地人   变化。

     

检查索引中的路径时,请勿在未合并时失败   项;相反,未合并的条目将被忽略。

所以,git checkout -f <remote> somedir/someFile.xyz

答案 2 :(得分:0)

尝试git merge --abort,它会中止合并,但也可能会因git stash pop引起的冲突而失败,我不确定。