美文网首页iOS 进阶iOS 技术文集
Git出现冲突error: Your local changes

Git出现冲突error: Your local changes

作者: 等不来的期待 | 来源:发表于2018-08-13 16:58 被阅读329次

    由于公司目前实行开发模块化,所以原来用的SVN代码管理器全部迁移到Git上去了,原来用过git现在已经忘的差不多了,目前暂时用的是SourceTree来管理代码的类似与SVN的Cornerstone的,今天在拉取服务器的代码的出现了冲突,记录下以供后续参考:
    1.用git pull来更新代码的时候,遇到了下面的问题:error: Your local changes to the following files would be overwritten by merge: xxx/xxx/xxx.php Please, commit your changes or stash them before you can merge. Aborting
    出现这个问题的原因是其他人修改了xxx.php并提交到版本库中去了,而你本地也修改了xxx.php,这时候你进行git pull操作就好出现冲突了,解决方法,在上面的提示中也说的很明确了。
    保留本地的方式修改(强烈推荐,还有一种是直接拉取服务器的(不推荐使用就不写了),这样你本地修改的代码的,就会舍弃,相当于你写的代码直接没,你还的重新写)

    步骤如下:

    通过git stash将工作区恢复到上次提交的内容,同时备份本地所做的修改,之后就可以正常git pull了,git pull完成后,执行git stash pop将之前本地做的修改应用到当前工作区。
    git stash
    git pull
    git stash pop

    看到这里有些人就懵逼了,我也一样,使用SourceTree的对于git命令的就是白痴的,下面我就介绍一下这三行代码代表什么意思吧;

    git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。

    git pull:拉取服务器上的代码;

    git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。

    git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。

    git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

    希望能帮到大家

    相关文章

      网友评论

        本文标题:Git出现冲突error: Your local changes

        本文链接:https://www.haomeiwen.com/subject/cdpubftx.html