导语
- 只要面试官问一些GIt相关问题,是辨别真假程序员的有效手段之一,GIt提交、拉取、分支、冲突解决是在多人协作当中经常遇到的问题,不可能没有遇到!在多人协作开发项目的时候,不可避免的会遇到代码冲突,虽说我们每次再开发以前要拉取代码,但是冲突还是不能彻底避免,这个时候就需要我们的小伙伴熟练掌握解决冲突的技能显得尤为重要。
产生冲突的场景
- 一大早同事A来到办公室,打开电脑启动环境执行git pull(拉取代码,修改代码之前一定要先拉取养成良好的习惯,尽可能的减少代码冲突),开始修改项目的首页的Bug,啪啪啪...
- 一会儿同事B气喘吁吁的坐下来,同样的开机启动环境git pull,然后同样去修改首页的Bug,啪啪啪...
- 看似风平浪静,但是掐指一算,一会儿即将可能有大事要发生,等待中...
-
同事A事先修改完了Bug,git push到了远程服务器,然后继续去修改其它Bug,同事B也修改完了,执行了git push,然后高高兴兴去厕所了,回来以后一看小黑窗:
报.......错......了.......
- 推送失败,因为你的小伙伴的最新提交和你试图推送的提交有冲突不要慌,解决办法我给大家介绍两种,酌情选择
解决方案一(强制覆盖本地代码,你自己修改的代码即将被远程库的代码所覆盖)
- 把你修改的代码进行备份,然后执行命令:
- git reset --hard origin/master
- git pull
- 从你备份好的文件当中把你写的代码拿过去,修改完成再进行git push
解决方案二
- (合并远程库和你本地的代码)执行命令:
- git fetch 更新远程仓库文件
- git diff master origin/master 本地文件和远程仓库文件进行对比
- git merge origin/master 自动合并
- 根据需求手动删除不必要的代码,修改完成git push到远程仓库
同学们听我说小命令:最后,补充一个我之前在工作当中经常使用的查看Git提交日志的命令,除了git log之外还有一个很好用“gitk”在小黑窗中执行一下,会有神奇的事情发生...
网友评论