git 问题:从远程仓库pull时报错了
今天从远程仓库pull时报错了,问题:
error: Your local changes to the following files would be overwritten by merge:
Gorgeouswindofgolf.xcodeproj/project.pbxproj
Please commit your changes or stash them before you merge.
![](https://img.haomeiwen.com/i15646807/8ce884c43f54469f.png)
大概意思是说,你的本地更改以下文件将会被合并覆盖:xxxx / project.pbxproj请提交您的更改或隐藏他们才能合并。
在上篇文章中我们已经介绍过.pbxproj文件,当我们工程中的一些配置文件或者修改文件目录后,.pbxproj文件就会修改。
1、仅仅修改了工程的配置文件且这个文件不需要上传到远程仓库的情况:
git discard .pbxproj 丢弃对.pbxproj文件所做的更改
git pull origin master 拉取远程仓库的代码,之后在上传其他需要上传的文件
2、保留本地修改的代码,并把远程仓库上的代码pull到本地
git stash :备份当前的工作区的内容,将当前的工作区内容保存到Git栈中。
git pull
git stash pop:从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
这样远程仓库上的代码便更新到本地,而且你本地修改的代码也没有被覆盖,之后在使用add,commit,push命令更新本地代码到服务器即可
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
3、完全覆盖本地的代码,只保留服务器端代码,则直接会退到上个版本,这样的话,本地的所有更改都会消失,在进行pull
git reset --hard
git pull
————————————————