【Git】P5 Git 远程仓库(3)pull 发生冲突
pull 发生冲突
- 冲突在什么场景下发生?
- 为什么要先 pull 再 push
- 构建一个冲突场景
- 初始
- 开始操作:
- 程序员2:
- 程序员1:
- 程序员2:
- 发生冲突:
- 查看冲突:
- 解决冲突:
冲突在什么场景下发生?
Git在文件合并时是比较智能的,对于同一个文件不同位置的修改内容会自动合并,只有在同一个文件同一个位置被同时修改时(本地仓与远程仓的当前版本有差异),才会产生冲突。
摘自华为云,说的很清晰;
所以事实上很少情况下会发生冲突;只有在同一个文件,同一个位置,被同时修改。
为什么要先 pull 再 push
在修改完之后打算上传 push 之前,第一步操作是先 pull,为什么?
对于push可以理解为覆盖,个人项目不会出现这个问题,但是大项目,往往有很多人在一起修改,甚至你都不知道是谁在修改。所以这里有一个时间差的问题。
为了理解这点,我想先重申一下解决步骤:
老板给一个任务,解决一个服务的bug
- git clone
- 修复bug
- git add .
- git commit
- git pull
- git push
在你的第二步开始,将云端拉到本地,到第5步时,你都是与云端“失联”的,云端任何修改你都没有同步到本地,所以你需要在第五步进行pull操作;
构建一个冲突场景
初始
云端:
user.txt 内容为 user=aaaaa
开始操作:
程序员2 -> 程序员1 -> 程序员2
程序员2:
git clone git@gitee.com:hongduoxu/git_test.git bug-test
cd bug-test
vim user.txt # 正在更改 user=ccccc
# 未完待续...看程序员1操作
程序员1:
vim user.txt # 内容修改为 user=bbbbb
git add .
git commit -m 'bbbbb'
git pull
git push
程序员2:
git add .
git commit -m 'ccccc'
git pull
发生冲突:
查看冲突:
cat user.txt
解决冲突:
vim user.txt
# 打开后手动解决问题,只保留需要的部分,然后保存 :wq
然后再次执行:
git add .
git comment -m 'xxxxx'
此时再执行 pull
git pull
# return: Already up to date.
最后上传 push
git push
解决冲突完成。
其实解决冲突的关键在于为什么会发生冲突,毕竟发生冲突的要求如此苛刻。看到冲突后,我暂时认为最大的问题是需要冲突的地方,跟程序员1商量该如何改。
2023.3.8 包玉刚图书馆
相关文章:

【Git】P5 Git 远程仓库(3)pull 发生冲突
pull 发生冲突冲突在什么场景下发生?为什么要先 pull 再 push构建一个冲突场景初始开始操作:程序员2:程序员1:程序员2:发生冲突:查看冲突:解决冲突:冲突在什么场景下发生?…...

关于世界坐标系,相机坐标系,图像坐标系,像素坐标系的一些理解
关于世界坐标系,相机坐标系,图像坐标系,像素坐标系的一些理解前言一、各坐标系的含义二、坐标系转换1.世界坐标系与相机坐标系(旋转与平移)2.相机坐标系与图像坐标系(透视)3.图像坐标系与像素坐…...
企业防护ddos的注意事项,你知道吗?
DDoS,分布式拒绝服务攻击,是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。在当下,DDoS 攻击是非常常见的一种攻击方式,大…...

RocketMQ如何测试
RocketMQ如何测试MQ简介RocketMQRocketMQ测试点MQ简介 MQ:Message Queue,即消息队列,是一种应用程序之间的消息通信,简单理解就是A服务不断的往队列里发布信息,另一服务B从队列中读取消息并执行处理,消息发…...

SpringBoot中的bean注入方式和原理介绍
Spring Boot是一个非常流行的Java框架,它可以帮助开发者快速地构建高效、健壮的应用程序。其中一个重要的功能就是依赖注入,也就是将一个对象注入到另一个对象中,以便它们可以相互协作。在Spring Boot中,依赖注入是通过bean实现的…...

ESP32设备驱动-RFID-RC522模块驱动
RFID-RC522模块驱动 文章目录 RFID-RC522模块驱动1、RFID-RC522介绍2、硬件准备3、软件准备4、驱动实现1、RFID-RC522介绍 基于 NXP 的 MFRC522 IC 的 RC522 RFID 模块通常带有一个 RFID 卡标签和具有 1KB 内存的密钥卡标签。 最重要的是,它可以写一个标签,这样你就可以在里…...
SMETA认证有些客户是需要做窗口期的
【SMETA认证有些客户是需要做窗口期的】SMETA审核是常见的社会责任审核标准之一,中文全称为“Sedex 会员道德贸易审核”,英文为“Sedex Members Ethical Trade Audit”. SEDEX 官网:网页链接Sedex 作为目前市场流行的CSR审核标准,…...

面向对象设计模式:创建型模式之原型模式
文章目录一、引入二、代理模式,Prototype Pattern2.1 Intent 意图2.2 Applicability 适用性2.3 类图2.4 应用实例:使用下划线或消息框展示字符串2.4 应用实例:JDK java.lang.Object java.lang.Cloneable一、引入 二、代理模式,Pr…...

三维重建(单目、双目、多目、点云、SFM、SLAM)
1 相机几何与标定1.1 相机模型中的坐标系1.2 四种坐标系之间的转换1.3 相机内参1.4 相机标定2 单目三维重建2.1 NeuralRecon三维重建定义 在计算机视觉中, 三维重建是指根据单视图或者多视图的图像重建三维信息的过程. 由于单视频的信息不完全,因此三维重建需要利用经验知识. 而…...

Java中的final和权限修饰符
目录 final 常量 细节: 权限修饰符 Java权限修饰符用于控制类、方法、变量的访问范围。Java中有四种权限修饰符: 权限修饰符的使用场景: final 方法 表明该方法是最终方法,不能被重写。类 表明该类是最终类,不能被继…...

MySQL的基本语句(SELECT型)
基本MySQL语句SELECTSELECT FROM 列的别名去除重复行空值着重号算术运算符加法( )减法( - )乘法( * )除法( / 或DIV)求模( % 或MOD)比较运算符等于( )安全等于( <> )不等于( ! 或 <…...

日志服务搭建-ES-FileBeat-Kibana
1次订单量突增问题,导致了有几个数据没有录库,但是确有支付的记录,啥玩意,还能有这个操作,组内安排问题定位,解决,一看打出来的日志,只有支付有,生成订单这边没有&#x…...

大数据架构设计与数据计算流程
大数据架构设计Hadoop有3个核心组件:分布式文件系统HDFS;分布式运算编程框架MapReduce;分布式资源调度平台YARN。HBase,Hadoop dataBase,基于HDFS的NoSQL数据库,面向列式的内存存储,定期将内存数…...

207. 课程表
207. 课程表https://leetcode.cn/problems/course-schedule/ 难度中等1526 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [a…...
2023-03-08 mysql列存储数据库-查询执行过程分析
摘要: 在mysql的sql层和存储引擎的交互模式中, 存储引擎实现handler接口, 由SQL层负责调用接口, 所以执行的过程可以看作是在sql层中, innodb仅提供接口。 但是在mysql列存储引擎中, TMD直接替换掉了sql层的执行接口,并且将sql层的查询树转换成了自己的一套查询树, 然后根据…...

各种激活函数的计算公式、图像以及实现代码
激活函数已经成为神经网络中非常重要的一部分,随着各种类型的神经网络模型被人们开发出来,各种激活函数也应运而生,在不同的场景中,取得良好的效果。本文跟据著名的YOLO系列目标检测模型的源码 AlexeyAB Darknet,整理出…...

ArangoDB
介绍 ArangoDB 是一个原生的多模型开源数据库,具有灵活的文档、图形和键值数据模型。使用方便的类似 SQL 的查询语言或 JavaScript 扩展构建高性能应用程序。主要特点 在集群上安装 ArangoDB —— 安装简单灵活的数据建模:数据建模为键值对、文档或图表的…...

MySQL8.0Linux安装及主从的搭建
MySQL8.0Linux安装教程 下载并安装 需要说明的一点是我使用的是SSH secure shell Client连接linux系统的,它的用法和命令窗口差不多。界面如图:一样的使用Linux命令操作。 话不多说 第一步: 1)、切换到 /usr/local下 cd /usr/…...

苹果新专利实现无线技术传输睡眠数据,蓝牙在智能家居中的应用
苹果于 2017 年 5 月收购了芬兰科技公司 Beddit,只是在过去 6 年时间里并没有太大的动作。根据美国商标和专利局本周公示的清单,苹果获得了一项 Beddit 相关的技术专利。 根据专利描述,苹果使用一根或者多根天线,利用电磁辐射的…...

银行数字化转型导师坚鹏:数字化转型为什么需要致良知与知行合一
在银行数字化转型过程中,特别需要致良知与知行合一哲学思想的指导。 知中有行,行中有知;行极而知,知极而行;知行无端,知行无始。知与行是一件事,做事与培养本体(修心)也是…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...