git merge,git pull时候遇到冲突解决办法:git stash

责编:menVScode 2018-03-27 11:29 阅读(647)

在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息:

QQ截图20180327112455

【1】先将本地修改存储起来

$ git stash

111

这样本地的所有修改就都被暂时存储起来 。

 $ git stash list                 

可以看到保存的信息:

2222

git stash暂存修改,其中stash@{0}就是刚才保存的标记。

【2】pull内容

暂存了本地修改之后,就可以pull了。

$ git pull

3333

【3】还原暂存的内容

$ git stash pop stash@{0}

系统提示如下类似的信息:

99999

意思就是系统自动合并修改的内容,但是其中有冲突,需要解决其中的冲突。

【4】解决文件中冲突的的部分

打开冲突的文件,会看到类似如下的内容:

QQ截图20180327111737

其中<<<<<<< HEAD 到 ======= 中间的内容是local提交的。======= 到 >>>>>>> commit-id 是远程仓库中的内容。碰到这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容。

解决完成之后,就可以正常的提交了。

【5】删除stash

git stash drop <stash@{id}>

如果不加stash编号,默认的就是删除最新的,也就是编号为0的那个,加编号就是删除指定编号的stash。git  stash clear 是清除所有stash!

【6】git stash pop  与 git stash apply <stash@{id}> 的区别。

使用git stash pop 和 git stash apply 几次以后,发现stash  list 好像比预计的多了几个stash。这两个命令的区别:原来git stash pop stash@{id}命令会在执行后将对应的stash id 从stash list里删除,而 git stash apply stash@{id} 命令则会继续保存stash id。建议使用git stash pop 命令。

标签: git git merge git stash
前端交流群: MVC前端网(menvscode.com)-qq交流群:551903636

邮箱快速注册

忘记密码