问题
协同工作的项目中我们常常会碰到git pull冲突的情况。如果可以auto merge便好,万一不能auto merge,可以参考本文提供的解决方法。
这边先上两张图,之后可以照着这两张图来理解相关代码。
解决
考虑到很多人只想要解决方案,我这边就直接上代码了。
$ git pull
/*
error arise
error: Your local changes to 'c/environ.c' would be overwritten by merge. Aborting.
Please, commit your changes or stash them before you can merge.
*/
$ git stash
$ git pull
$ git stash pop
/*
if auto_merge works, then you can stop here.
else go ahead...
*/
/*
open conflicting file, then modify.
*/
$ git push origin master
切换太麻烦直接写的英文,理解起来应该不是大问题。
分析
接下来就是对那几行代码的分析了。
$ git pull
/*
这边就是最初的pull操作,既然你来看这篇文章了,这说明你看到了跟上面代码里面差不多的错误
*/
$ git stash //这边作用是先将本地修改存储起来
$ git pull //有了上面的操作之后,工作区就没有所谓的修改文件了,因为都在缓存区了,可以安心pull到工作区了
$ git stash pop //还原暂存的内容,这个时候缓存区恢复的文件会跟pull下来的文件进行自动merge,结果有两种,一种是auto_merge 成功,这个时候就到此为止。项目pull成功。如果出现失败,则在进行下一步。
/*
这边需要你按照代码提示,打开你的冲突文件,如下
<<<<<<< Updated upstream
<div id="comments"></div>
<script>
new Valine({
el: '#comments',
=======
<div id="vcomment"></div>
<script>
new Valine({
el: '#vcomment',
>>>>>>> Stashed changes
并对冲突的地方进行修改。其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。
*/
$ git push origin master//最后保险起见,再push一下
参考内容
https://www.cnblogs.com/cb0327/p/5066685.html
http://www.cnblogs.com/wteam-xq/p/4122163.html
评论版块需要fan墙,如果需要请fan墙后操作。
游客评论无法接受回复提醒邮件。
之前也用了别的评论系统,但还是觉得这个比较好,功能比较全。