zoukankan      html  css  js  c++  java
  • 解决git 本地代码与远程仓库冲突问题

    在使用协同开发难免会出现同时修改某个文件导致代码冲突的问题

    
    	 * branch            master     -> FETCH_HEAD
    	error: Your local changes to the following files would be overwritten by merge:
    	        lib/pages/search_page.dart
    	Please commit your changes or stash them before you merge.
    	Aborting
    	Updating 657e136..4f8135c
    
    

    一、使用 stash 缓存修改

    最简单的就是使用git stash 将自己修改的代码片段进行一个本地仓库的临时缓存

    
    	$ git stash
    	Saved working directory and index state WIP on master: 657e136 search page modif                                                                                                                                  ied
    
    

    使用git stash list 查看缓存代码片段

    
    	$ git stash list
    	stash@{0}: WIP on master: 657e136 search page modified
    
    

    使用了git stash命令将改动的代码缓存后,就可以执行pull 将远程仓库更新到本地了,

    现在使用pull 更新代码

    
    	$ git pull origin master
    
    

    现在更新没问题了

    再将我们自己修改的代码合并到更新后的代码中去

    
    	$ git stash pop stash@{0}
    	Auto-merging lib/pages/search_page.dart
    	CONFLICT (content): Merge conflict in lib/pages/search_page.dart
    
    
    

    其中stash@{0} 就是git stash时的一个标记,也可使用git stash save XXX 来定义一个自己标记,方便自己查询管理

    现在回到自己写的代码中去,你会发现
    在这里插入图片描述
    在这里插入图片描述
    很明显git 帮你将远程的和本地的分开标记出来了,现在我们只需要将自己修改过的地方合并到Updated upstream中去再 commit 就ok

    其实stash 有点类似这个情景(我们平时写代码,有个同事说哎XX 我提交了一个代码是否你也修改了 XX方法?也是你意识到了直接更新定会出现冲突,咋办! 我们就像将自己修改的文件先拷贝一份呗,然后在将同事提交的代码更新下来,然后再将自己改过的方法合并进去,再提交)。

    二、直接还原

    有时候我们本地并没有修改多少,使用直接还原也许更省事,

    先使用git log 查询一下提交记录

    
    	$ git log
    	commit 4f8135c32d508d250b83fe12644c4b65db87a1af (HEAD -> master, origin/master)
    	Author: dex <601078218@qq.com>
    	Date:   Thu Nov 7 22:19:04 2019 +0800
    	
    	    the tab_navigator.dart is modified
    
    		##  ... 省略其他log
    
    

    直接拷贝 commit版本后的hash码

    
    	$ git reset --hard 4f8135c32d508d250b83fe12644c4b65db87a1af
    	HEAD is now at 4f8135c the tab_navigator.dart is modified
    	
    

    ok 代码已经还原到上一次提交状态,但是这个需要谨慎使用,执行还原后你修改的代码将不复存在!

  • 相关阅读:
    软件-集成开发环境:IDE
    框架-Eureka:初识 Eureka
    框架:Rureka
    计算机系统-组件:DS(目录服务)
    院校-美国-麻省理工学院(MIT):百科
    院校-国外-美国-斯坦福大学( Stanford):百科
    院校:目录
    杂项:院校
    网络:万维网(WWW)
    词语辨析
  • 原文地址:https://www.cnblogs.com/dengxiaoning/p/11985853.html
Copyright © 2011-2022 走看看