• 使用git pull文件时和本地文件冲突怎么办?


    首先,简单介绍下Git Stash命令的用法,详细的用法在man文档中有相关介绍,下面我来说明常见的使用。
    git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
    git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
    git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
    git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

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

    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命令进行处理,分成以下几个步骤进行处理。

    1、先将本地修改存储起来

    $ git stash

    这样本地的所有修改就都被暂时存储起来 。是用git stash list可以看到保存的信息:

    git stash暂存修改

    git stash暂存修改

    其中stash@{0}就是刚才保存的标记。

    2、pull内容

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

    $ git pull

    3、还原暂存的内容

    $ git stash pop stash@{0}

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

    Auto-merging c/environ.c
    CONFLICT (content): Merge conflict in c/environ.c

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

    4、解决文件中冲突的的部分

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

    git冲突内容

    git冲突内容


    其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。碰到这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容。

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

  • 相关阅读:
    JS校验 if (! temp_var) {} //拦截 ''和 undefined
    17 JQuery高级----学习笔记
    16 JQuery---JavaScript框架
    15 Filter过滤器和Listener监听器
    14 用户信息展示综合案例
    13 JSP、MVC开发模式、EL表达式和JSPL标签+软件设计架构---学习笔记
    12 Cookie、Session和JSP基础
    11 Reponse对象+ServletContext对象
    10 Servlet+Http+Request对象
    09 Servlet相关知识点---学习笔记
  • 原文地址:https://www.cnblogs.com/leonardchen/p/9144723.html
Copyright © 2020-2023  润新知