场景: 出差时间在外面修改netMarketing的代码,回家后,git pull 回调代码到本地,然后出现下面的错误:
$ git pull origin master From https://github.com/skcircle/hackpigLib * branch master -> FETCH_HEAD error: Your local changes to the following files would be overwritten by merge: netMarketingLib/netMarketing/vision/CCDMotion/visionFunc/vFunBaseMethod.cs Please commit your changes or stash them before you merge. Aborting Updating 04c0735..b819118
这个错误的意思是我台式机上修改过的的代码的文件,将会被git服务器上的代码覆盖
这是因为我本机的netMarketing有过一些修改,不过没有上传到远端。
如果不想之前写的代码被覆盖掉,看了git的手册,发现可以这样解决:
方法1:如果你想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来
git stash
git pull origin master
git stash pop
如此一来,服务器上的代码更新到了本地,而且你本地修改的代码也没有被覆盖,之后使用add,commit,push 命令即可更新本地代码到服务器了。
方法2、如果你想完全地覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本,再进行pull:
git reset --hard
git pull origin master
本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:


