Git使用手册/Git教程:git pull origin 拉取代码到本地,解决拉取代码时发生的文件冲突

2023-05-16


相关文章:
关于验证是否存在ssh配置以及生成SSH Key的方法可以参照文章:Git使用手册:生成SSH Key
关于SSH Key的使用和公钥在gitHub、gitLab的配置等,请参考文章:Git使用手册:使用SSH Key及配置SSH key公钥
关于GIT 工作区、暂存区、本地仓库、远程仓库的概念及关系,请参考文章:Git使用手册:工作区、暂存区、本地仓库、远程仓库
关于GIT 从远程仓库下载项目到本地工作区的操作,请参考文章:Git使用手册:git clone 克隆下载远程仓库项目工程到本地工作区
关于GIT 分支使用详解,请参考文章:Git使用手册:git branch 分支操作、创建分支、查看分支、删除分支、删除本地分支、删除远程分支

关于GIT Checkout的使用,请参考文章:Git使用手册:git checkout 创建分支、切换分支

关于Git status命令使用解读,请参考文章Git使用手册:git status 查看本地工作区、暂存区中文件的修改状态

关于Git diff和Git add命令使用,请参考文章:Git使用手册:git diff 、 git add 、 git diff --cached 命令详解

关于Git commit命令使用详解,请参考文章:Git使用手册:git commit -m/-am/-a -m 提交文件至本地仓库区

关于Git fetch命令使用,请参考文章:Git使用手册:git fetch 将远程仓库的分支及分支最新版本代码拉取到本地

关于Git push命令使用,请参考文章:Git使用手册:git push 推送提交本地仓库代码文件到远程仓库

关于Git log命令使用,请参考文章:Git使用手册/Git教程:git log 查看git提交日志记录





1)拉取(下载)指定分支代码合并到当前分支:

相当于指定分支的代码与当前分支的代码合并到了一起。

命令:git pull origin分支名称

注意:

每次使用该命令前,需要保证本地工作区是没有任何修改代码的,也就是说需要将本地工作区编辑过的文件添加到暂存区(git add .),或提交到本地仓库中(git commit),才可以使用该命令拉取指定分支的代码合并到当前分支中。

每次在操作完git commit命令后,必须拉取一下master分支代码,保持本地正在开发功能逻辑的代码分支代码是最新的,避免后续在提交时冲突过多或覆盖掉其他人的代码的问题出现。

如果我们需要将master主干分支的代码拉取并与我们当前分支(xuzhangzheng2)的代码进行合并的话,可以使用该命令。效果如图:


执行命令后,可以看到提示Alreadyup-to-date,意思为:已经是最新的了,无需进行更新。

当我们拉取的主干分支master被修改后,再执行拉取命令,会看到如图所示效果:


粉色框框选部分为自动合并代码的文件

绿色框框选部分为本次更新(包含新增、删除、修改)的文件及具体信息,文件名后面的9 表示有9行有更新, +++++++++表示这些更新是新增(+)还是删除(-)。

红色框框选部分为本次更新影响的文件数,新增的行数(insertions),删除的行数(deletions)。

2)解决拉取代码时发生冲突的情况

当我们执行git pullorigin 分支名称 命令想要拉取某一个分支的最新代码到本地,并合并到当前分支时,遇到了如下图的提示:


从图中我们看到,出现了两行提示语:

CONFLICT(content):Merge conflict inxxxx/xxx/xxx/xxx.java

Automatic merge failed;fix conflicts andthen commit the result.

分别使用红色和绿色框选出来了。

红色框框选部分为出现冲突的文件,绿色框框选部分为提示语:自动合并失败,修改冲突然后提交修改后的结果。

第一句中提到了一个关键词CONFLICT(content),这个词的出现表明某一个具体文件在合并过程中发生了冲突。发生冲突的原因大致可以理解为你与你的同事两个人在同一个文件中都进行了编辑操作,当其中一个人拉取合并了另一个人的分支,或拉取合并了另一个人合并过的分支的话,就会出现合并冲突的问题。

冲突,简单的说,同一个文件2个人编辑,2个人如果编辑的行数没有重合的话(一个人写1-10行,另一个人写11-20行),合并时就没有冲突;若2个人编辑的行数有重合的话(一个人写1-10行,另一个人写5-15行),合并时就会出现冲突,同时,会将2个人编写的内容都罗列出来,让出现冲突的那个人进行解决,最终将冲突解决完毕后,再进行提交合并等操作。

此时我们查看出现冲突的文件:

按照冲突提示的路径找到冲突对应文件(我使用的IDEA,由于有语法检查,所以一打开就看到错误文件在哪了),打开文件后,会看到如图红框框选部分,被蓝色线分割为了2部分,同时可以看到3个蓝色框框选的文本信息,如下三句:

<<<<<<< HEAD


=======  

>>>>>>> a5d8ca0b4fd8847b2c21d96900ac1edcf859ca1b  

中间的======是用于分割本地变更和远程仓库中的变更的,也就是说出现冲突时,如图,使用======把冲突的部分分割成2块。

上面的是本地修改变更的内容,以<<<<<<<HEAD开头。

下面的是远程仓库修改变更的内容,以>>>>>>>版本号 结尾。

版本号,也就是示例中的a5d8ca0b4fd8847b2c21d96900ac1edcf859ca1b,即为提交的版本号,使用该版本号可以在gitlab中找到提交记录,从而方便查询其他同事在对同文件进行修改时,都修改了哪些内容,便于进解决冲突。

解决方法:

根据实际业务场景,将本地修改变更的部分和远程仓库中修改变更的部分进行合并,留下满足业务逻辑的代码即可(若团队开发期间,出现冲突时,建议找到相关同事进行沟通,确保自己解决冲突的方法不会影响到其他人编写的功能),同时将上面提到的冲突标识删除掉,不然无法通过语法检查和编译。

同时建议使用全文件内容搜索<<<<<<<或======或>>>>>>>,将所有有冲突的地方一一进行解决,保重提交的代码是可运行,没有问题的。

解决冲突后,若需要提交代码的话,需先将代码使用git add .存入缓存区,或直接使用git commit –am “本次提交描述” 或git commit –a –m “本次提交描述”将代码提交至本地仓库区,同时再次拉取制定分支的最新代码,确保本次的代码时刻都是最新的,再进行接下来的推送代码至远程仓库操作。








如您有其他问题,希望可以通过留言得形式及时交流,有书写错误和可优化的地方也希望及时提出,感谢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git使用手册/Git教程:git pull origin 拉取代码到本地,解决拉取代码时发生的文件冲突 的相关文章

  • Android 5.0以上Button去掉阴影

    1 xff0c 在Button标签中直接添加以下属性 style 61 android attr borderlessButtonStyle 2 xff0c 有的Button的属性已经抽成style 此时直接在style时添加上parent
  • Tinker接入小白教程

    在这里先给大家拜个晚年 xff0c 虽然说新已经过了 本文是今天第一篇文章 xff0c 已经有好长时间没总结了 xff0c 算了给2017开个好头吧 之前一直搞不懂什么是热修复 xff1f 其实热修复就是在应用不用重新安装的情况下更新应用
  • 扫盲Android Studio 仓库jCenter并发布自己的开源库

    AS从哪里获取到开源库 首先我们在使用第三方开源库时 xff0c 直接在项目的 gradle 文件中添加这样一行代码 xff1a compile 39 com jakewharton butterknife 7 0 1 39 添加完之后 x
  • Mac安装android studio后卡在building gradle project info的解决方法

    1 找到 gradle目录 xff0c 一般在 User lt 用户名 gt 下 macOS Sierra 10 12 3可以直接快捷键 shift 43 command 43 显示隐藏的文件即可看到 gradle文件夹 2 进入 grad
  • 动态规划

    动态规划是20世纪50年代由Richard Bellman发明的 不像贪婪算法 xff0c 回溯算法等 xff0c 单从名字上根本理解不了这是什么鬼 Bellman自己也说了 xff0c 这个名字完全是为了申请经费搞出来的 xff08 囧
  • 使用ItemTouchHelper拖拽时两个item跟着动解决方法

    使用ItemTouchHelper时 xff0c 当RecyclerView的item数只有三个时 xff0c 拖动第二个item并拖出边界时 xff0c 第三个item就会往右边动 xff08 按照正常逻辑 xff0c 第三个item是不
  • 仿微信朋友圈发表图片拖拽和删除功能

    小窥朋友圈实现原理 我们使用Android Device Monitor来分析朋友圈发布图片的界面实现原理 如果需要分析其他应用的界面实现也是采用这种方法哦 打开Android Device Monitor xff0c 选择DDMS xff
  • mac ssh记住密码

    以下方法只针对已生成ssh密码的情况 1 cd ssh 2 cp id rsa pub authorized keys 3 有无默认端口号 xff1a xff08 1 xff09 默认端口号为22 xff1a ssh copy id i s
  • idea启动项目启动一半总是卡住不动原因以及解决办法?

    idea 有时出现项目启动运行一半就卡住 xff0c 也不报错 xff0c 你是不是很纳闷 xff1f 其实可能是 你的 断点打的多或者打到方法名上了 解决办法 xff1a 1 找到下图圈出来的按钮 xff0c 这是查看当前项目所有断点的地
  • springsecurity设置用户登录状态过期,让其重新登录

    手动程序让session过期 xff0c 使用户重新登录 判断是否过期 Object expireDate 61 redisTemplate opsForValue get username 43 34 expireDate 34 if e
  • vue如何避免变量赋值后双向绑定

    如 xff1a this list 61 this list2 结果在list改变后 list2也改变 xff0c 这不是我们想要的效果 第一种 xff1a 利用 JSON parse 和 JSON stringify this list
  • 快速部署PaddleHub使用PaddleOCR

    创建虚拟环境 xff1a conda create name hubocr python 61 3 7 安装paddlepaddle pip install paddlepaddle 61 61 2 0 0rc i https mirror
  • 整蛊:聊天中,连续发送消息的vbs脚本

    如何实现连续发送消息呢 xff1f 准备工作 xff1a 只要我们将下面这段代码复制放在记事本里 xff0c 然后保存退出将记事本文件后缀名改为 vbs就可以了 On Error Resume Next Dim wsh s xTimes t
  • 如何处理从application.properties配置文件获取的汉字乱码问题

    平时从配置文件各种读取配置参数都正常 xff0c 但是有时候放了个中文就乱码 xff0c 你肯定试过网上好多方法 xff0c 都没解决 xff0c 那么来看下面 xff0c 恭喜你终于找这里了 这里 xff0c 我们以springboot框
  • mybatis使用相关问题汇总——持续更新中

    1 疑问 xff1a 怎样让表字段和实体类里的驼峰命名字段对应尼 xff1f 解决方案 xff1a 以下配置可让表字段和实体类的字段相对应 1 此方法只针对 39 user name 39 变 userName 这种驼峰有效 xff0c 但
  • 五大常用算法总结

    引言 据说有人归纳了计算机的五大常用算法 xff0c 它们是贪婪算法 xff0c 动态规划算法 xff0c 分治算法 xff0c 回溯算法以及分支限界算法 虽然不知道为何要将这五个算法归为最常用的算法 xff0c 但是毫无疑问 xff0c
  • android 下载应用 通知栏显示进度 下完之后点击安装 (很实用)

    先看效果图 xff1a 这是本人的习惯 xff0c 先上图显示效果 xff0c 看是否是想要的 xff0c 再看代码 有图有真相 代码 xff1a Main package com gem hsx appupdate import andr
  • 轻松解决vscode官网下载慢问题

    下载vscode安装包时 xff0c 都习惯去官网下载 xff0c 但是会如下图第一次下载那样缓慢 xff0c 对着下载处右击 xff0c 复制出下载链接 xff0c 把下载链接中code visualstudio com换成vscode
  • redis获取缓存对象bean时报:SerializationException: Could not read JSON: Could not resolve type

    一 在单个应用内进行 存 取 工作中的问题场景 xff1a 将一个实体类对象set存入 redis中 xff0c 用的时候去get时 xff0c 报错提示 xff1a SerializationException Could not rea
  • window 2012 R2 忘记密码处理方案

    方案一 xff1a 你是否开启了内置管理员 xff0c 或是还建立了其他的管理员账户 如果有的话 xff0c 请先以其他管理员账户登入电脑 xff0c 在本地计算机和组中 xff0c 更改你的账户密码 方案二 xff1a 如果没有的话 xf

随机推荐

  • 达梦数据库不同模式导入时系统提示字符集异常的解决办法

    近期参加了达梦DCA的培训 xff0c 练习的时候遇到一个问题 xff1a 同一模式导出导入正常 xff0c 但是在将DMTEST模式导出的dmp文件导入DMTEST02时 xff0c 遇到了如下报错 xff1a 提示本地编码 PG UTF
  • gradle 插件与gradle版本对应关系

    https developer android google cn studio releases gradle plugin html updating gradle 插件版本所需的Gradle版本1 0 0 1 1 3 2 2 1 2
  • 程序员的硬件设备

    程序员的硬件设备 程序员的工作台 很多人从网上 或者公司里 xff0c 看到程序员开发的工作台是这样的 其实这是个误区 xff0c 不同的人习惯不一样 xff0c 对于程序员来说 xff0c 一台性能好点的电脑就做够了 市场上有很多驻场外包
  • scp 本地复制文件到服务器

    1 本地复制文件到服务器 scp Users guolm Desktop ROOT war root 64 192 168 1 228 opt tomcat webapps 2 服务器到本地文件 scp root 64 192 168 1
  • Wireshark 认识捕获的分析数据包(及各个分层协议的介绍)

    综述 xff1a 认识Wireshark捕获数据包 当我们对Wireshark主窗口各部分作用了解了 xff0c 学会捕获数据了 xff0c 接下来就该去认识这些捕获的数据包了 Wireshark将从网络中捕获到的二进制数据按照不同的协议包
  • 禁用virtualbox自带的dhcp服务

    在你安装虚拟机的系统上面 xff0c 打开cmd xff1a cd D cd D softInstall VMvirtualbox6 D softInstall VMvirtualbox6 gt VBoxManage list dhcpse
  • MATLAB并行计算

    先上图 xff0c 图中求500次随机矩阵的特征值 xff0c 串行14 85s xff0c 并行3 63s 串行计算 tic S1 61 1 for i 61 1 500 S1 61 S1 43 max eig rand i end di
  • libsvm参数说明

    因为要用svm做regression xff0c 所以看了一些关于libsvm xff0c 总结以备用 libsvm在训练model的时候 xff0c 有如下参数要设置 xff0c 当然有默认的参数 xff0c 但是在具体应用方面效果会大大
  • Windows C# RabbitMQ 安装--配置--信息收发

    前言 近期要实现一个图片异步上传的需求 xff0c 需要用到RabbitMQ xff0c 辅助客户端完成对高并发请求的处理 一 安装Erlang 由于RabbitMQ服务器是用Erlang语言编写 xff0c 所以我们需要先安装Erlang
  • .MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1

    MalformedJsonException Use JsonReader setLenient true to accept malformed JSON at line 1 column 1 path 像这种低级错误 xff0c 我今天
  • 离线升级curl采坑

    先在线yum打包 1 安装repo rpm Uvh http www city fan org ftp contrib yum repo rhel6 x86 64 city fan org release 2 1 rhel6 noarch
  • uos桌面系统获取串口日志

    文章目录 一 准备工作1 问题机器2 收集日志机器 二 串口线连接三 收集日志机器上查看串口信息四 问题机器上设置gurb五 cutecom调试串口六 使用minicom工具收集串口信息 一 准备工作 1 问题机器 span class t
  • Ubuntu18.04.3安装GTX1650显卡驱动 安装CUDA 安装CUDNN

    0 前期准备 禁用BIOS的secure boot xff0c 即disable它 xff0c 如果不关闭 xff0c 使用第三方源安装显卡驱动会安装后不能使用 1 禁用nouveau 1 创建文件 xff0c 如果没有下载vim编辑器 x
  • mybatis中resultMap使用之返回分组数据

    1 resultMap 1 1 引言 resultMap是mybatis最重要的强大元素 通过描述数据的关系结构 xff0c 将结果集进行映射到java类或java bean中 xff0c 达到结果集复杂处理的目的 本文解决的主要问题的分组
  • 项目中使用JPush推送,遇到的问题

    JPush初始化错误 Android版本是4 0以上的 xff0c JPush包是1 60的 报错 xff1a 02 24 18 46 54 306 E AndroidRuntime 22522 FATAL EXCEPTION Thread
  • HIDL最全编译流程

    想了解HIDL介绍的可以参考 HIDL概述 xff0c 本篇文章主要介绍HIDL的详细编译流程及简单的客户端应用 xff08 C 43 43 跟Android客户端的应用 xff09 一 准备工作 整一套源码 xff0c Android O
  • 【mysql】如何在MySQL中导入超大的SQL文件?

    mysql 如何在MySQL中导入超大的SQL文件 xff1f 方法 1 在navicat中导入 xff08 速度慢 xff09 2 使用source命令导入 xff08 速度快 xff09 第一种很简单 xff0c 本文只介绍第二种 步骤
  • (转)imageIO异常:Unsupported Image Type, 不支持图像类型

    是不是在使用iamgeio导入图片的时候出现了这个异常呢 xff1a javax imageio IIOException Unsupported Image Type 如果你确定图片格式没有错 xff0c 那我想你可能使用过photosh
  • 遗传算法与进化算法

    引言 1858年7月1日C R 达尔文与A R 华莱士在伦敦林奈学会上宣读了进化论的论文 xff0c 至此进化理论深入人心 xff0c 为广大吃瓜群众开辟了一个思想的新的天地 而我们的机器学习大师们向来喜欢从生物学家那里找灵感 xff0c
  • Git使用手册/Git教程:git pull origin 拉取代码到本地,解决拉取代码时发生的文件冲突

    相关文章 xff1a 关于验证是否存在ssh配置以及生成SSH Key的方法可以参照文章 xff1a Git使用手册 生成SSH Key 关于SSH Key的使用和公钥在gitHub gitLab的配置等 xff0c 请参考文章 xff1a