当前位置: 首页 > news >正文

GitLab教程(三):多人合作场景下如何pull代码和处理冲突

文章目录

  • 1.拉取别人同步的代码到本地的流程
  • 2.push冲突
    • 发生场景
    • 情景模拟
    • 简单的解决方法

  • 在这一章中,为了模拟多人合作的场景,我需要一个人分饰两角。

  • 执行git clone xx远端仓库地址 xx文件夹命令,在clone代码时指定本地仓库的文件夹名:
    我这里是指定了将拉下来的代码存在test-another文件夹中,和在上一篇博客中产生的test文件夹相区分。也就是说,现在我本地有两个文件夹,test-another文件夹用来模拟另一个同事A的本地仓库,test文件夹模拟我自己的本地仓库。

在这里插入图片描述
在这里插入图片描述

1.拉取别人同步的代码到本地的流程

  • 同事A更新了他的本地仓库代码并同步到了远程仓库:
    假设他新建了一个file1.txt文件。

在这里插入图片描述

  • 然后同事A将他的本地更改同步到了远程仓库:

在这里插入图片描述
在这里插入图片描述

  • 我执行git pull命令可以将同事同步到远程仓库中的变更拉取下来:

在这里插入图片描述

整个流程看上去似乎是比较简单的,但实际工作中在多人合作的情况下却存在着push发生冲突这样的情况。

2.push冲突

发生场景

push冲突通常发生在使用版本控制系统(如Git)进行协作开发的过程中,特别是在多个开发者对同一份代码库的相同部分同时进行修改并尝试推送更改到远程仓库时。以下是两种常见的发生场景:

  1. 并行修改同一文件:最直接的情况是,两个或多个开发者同时修改了同一个文件的相同部分,并且每个人都试图将他们的更改推送到远程仓库的同一分支上。由于Git无法自动合并这些冲突的更改,就会出现push冲突。

  2. 分支基础已变更:当你在一个分支上工作了一段时间,而在此期间,其他人向该分支的上游提交了新的更改并合并到了远程仓库。这时,如果你没有及时拉取(pull)这些最新更改并合并到你的本地分支,直接尝试推送你的更改到远程,就可能会因为你的分支落后于远程而遇到push冲突。

情景模拟

假设我和同事A同时在各自的电脑上修改本地仓库,并都要将代码同步到远程仓库。

  • 同事A创建了一个file-A.txt文件,并先我一步将变更同步到了远程仓库:
    在这里插入图片描述

在这里插入图片描述

  • 在同一时间,我也在我的电脑上创建了一个file-me.txt文件,我相比同事A晚一步向远程仓库push我的本地变更:
    显示push失败,原因是远程仓库在我修改本地仓库期间已经发生了变化(来自同事A的修改和push)。
    在这里插入图片描述

简单的解决方法

一个简单的方法是先执行git fetch获取远端的最新改变,再执行git merge将远端的变更和本地已经commit的变更进行合并,这样做的方法比较简单,但是可能需要解决一下不同变更之间的冲突。

在这里插入图片描述

在这里插入图片描述

这样的解决方法比较简单,在要求不高的情况下可以生效。但是实际的多人场景下可能会产生的问题会比现在模拟的场景下多很多,因此从下一篇博客开始会开始介绍更多做法,并解析git命令背后的工作原理。

相关文章:

GitLab教程(三):多人合作场景下如何pull代码和处理冲突

文章目录 1.拉取别人同步的代码到本地的流程2.push冲突发生场景情景模拟简单的解决方法 在这一章中,为了模拟多人合作的场景,我需要一个人分饰两角。 执行git clone xx远端仓库地址 xx文件夹命令,在clone代码时指定本地仓库的文件夹名&#…...

模版偏特化之std::enable_if

1 SFINAE。 2 条件特化。可用作额外的函数参数&#xff08;不可应用于运算符重载&#xff09;、返回类型&#xff08;不可应用于构造函数与析构函数&#xff09;&#xff0c;或类模板或函数模板形参。 函数参数&#xff1a; #include <iostream> #include <type_tra…...

好用的Web数据库管理工具推荐(ChatGPT的推荐)

在现代数据管理和开发中&#xff0c;Web数据库管理工具变得越来越重要。这些工具不仅提供了直观的用户界面&#xff0c;还支持跨平台操作&#xff0c;方便用户在任何地方进行数据库管理。 目录 1. SQLynx 2. phpMyAdmin 3. Adminer 4. DBeaver 5 结论 以下是几款推荐的Web…...

encoding Token和embedding 傻傻分不清楚?

encoding 编码 “encoding” 是一个在计算机科学和人工智能领域广泛使用的术语&#xff0c;它可以指代多种不同的过程和方法。核心就是编码&#xff1a;用某些数字来表示特定的信息。当然你或许会说字符集(Unicode)更理解这种概念&#xff0c;编码更强调这种动态的过程。而字符…...

一个公用的数据状态修改组件

灵感来自于一项重复的工作&#xff0c;下图中&#xff0c;这类禁用启用、审核通过不通过、设计成是什么状态否什么状态的场景很多。每一个都需要单独提供接口。重复工作还蛮大的。于是&#xff0c;基于该组件类捕获组件跳转写了这款通用接口。省时省力。 代码如下&#xff1a;…...

[python]yfinance国内不能使用

yfinance国内不能使用&#xff0c;可以使用tushare、akshare代替 import yfinance as yf# 输入股票代码 stock_symbol AAPL # 替换为你想要查询的股票代码# 获取股票数据 data yf.download(stock_symbol)# 打印实时数据 print(data) pip install akshare import akshare …...

Frontiers旗下期刊,23年分区表整理出炉!它还值得投吗?

本周投稿推荐 SSCI • 中科院2区&#xff0c;6.0-7.0&#xff08;录用友好&#xff09; EI • 各领域沾边均可&#xff08;2天录用&#xff09; CNKI • 7天录用-检索&#xff08;急录友好&#xff09; SCI&EI • 4区生物医学类&#xff0c;0.5-1.0&#xff08;录用…...

基于JSP的毕业生就业信息管理系统

开头语&#xff1a; 你好&#xff0c;我是专注于信息系统开发的学长猫哥。如果您对毕业生就业信息管理或相关技术感兴趣&#xff0c;欢迎联系我交流。 开发语言&#xff1a; JSP 数据库&#xff1a; MySQL 技术&#xff1a; JSP技术 SSM框架 工具&#xff1a; Eclips…...

CDN、CNAME、DNS

CDN、CNAME、DNS 域名解析是将域名转换为IP地址的过程。当用户在浏览器中输入域名时&#xff0c;计算机需要在DNS系统中找到对应的IP地址&#xff0c;以便能够访问该网站。 CDN&#xff08;Content Delivery Network&#xff0c;内容分发网络&#xff09;是一种用于加速网站访…...

直播商城源码-PC+APP+H5+小程序现成源码

随着电商行业的不断演进&#xff0c;直播商城已成为连接消费者和商品的新兴桥梁。直播商城源码提供了一个完整的解决方案&#xff0c;使得企业能够迅速搭建起一个覆盖PC、APP、H5和小程序的全渠道电商平台。本文将探讨直播商城源码的优势、关键功能以及如何选择适合的现成源码。…...

16. 《C语言》——【牛客网BC124 —— BC130题目讲解】

亲爱的读者&#xff0c;大家好&#xff01;我是一名正在学习编程的高校生。在这个博客里&#xff0c;我将和大家一起探讨编程技巧、分享实用工具&#xff0c;并交流学习心得。希望通过我的博客&#xff0c;你能学到有用的知识&#xff0c;提高自己的技能&#xff0c;成为一名优…...

Docker 国内镜像源更换

实现 替换docker 镜像源 前提要求 安装 docker docker-compose 参考创建一键更换docker国内镜像源 Docker 镜像代理DaoCloud 镜像站百度云 https://mirror.baidubce.com南京大学镜像站...

python07

__init__.py from . import p1 from . import p2 # 理解&#xff1a;import p2 先导入 p2 文件&#xff0c; 然后该文件的内容全要 from . # # 告诉调用者&#xff0c;哪些文件需要使用 p1.py def sum(a,b):print(a b) p2.py def max(a,b):if a > b:print(a)else:pri…...

【CTS】android CTS测试

android CTS测试 1.硬件准备2. 软件准备3. 下载 CTS3.1 cts3.2 解压 CTS 包&#xff1a; 4 配置adb fastboot5 检查 Java 版本6 安装aapt26.1 下载并安装 Android SDK6.2 找到 aapt2 工具6.3 配置环境变量 7. 准备测试设备8. 运行 CTS 测试8.1 启动 CTS&#xff1a; 9. 查看测试…...

【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【08】【商品服务】Object划分_批量删除

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【08】【商品服务】Object划分_批量删除 Object划分批量删除/添加参考 Object划分 数据库中对于一张表的数据&#xff0c;由于拥有隐私字段、多余字段、字段过少等原因&#xff0c;不应该直…...

JAVA开发 PDF文件生成表格,表格根据内容自动调整高度

1、展示效果 2、相关功能实现 JAVA开发 使用Apache PDFBox库生成PDF文件&#xff0c;绘制表格 3、实现代码 import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.ap…...

OSINT技术情报精选·2024年6月第1周

OSINT技术情报精选2024年6月第1周 2024.6.11版权声明&#xff1a;本文为博主chszs的原创文章&#xff0c;未经博主允许不得转载。 1、经合组织&#xff1a;《2024数字经济展望&#xff1a;第1卷,拥抱技术前沿》 经合组织近日发布《2024数字经济展望》报告第一卷&#xff0c;…...

惊艳的短视频:成都科成博通文化传媒公司

惊艳的短视频&#xff1a;瞬间之美&#xff0c;震撼心灵 在数字化时代&#xff0c;短视频以其短小精悍、内容丰富的特点&#xff0c;迅速占领了我们的屏幕和时间。而在这个浩如烟海的视频海洋中&#xff0c;总有一些短视频能够脱颖而出&#xff0c;以其惊艳的视觉效果、深刻的…...

消费增值模式引领业绩飙升与用户活跃

大家好&#xff0c;我是吴军&#xff0c;致力于为您揭示私域电商领域的独特魅力与机遇。 今日&#xff0c;我很高兴与大家分享一个激动人心的成功案例。我们的客户在短短一个月的时间里&#xff0c;业绩就飙升至上百万级别&#xff0c;其用户活跃度更是居高不下&#xff0c;日…...

二叉树从入门到AC(3)完全二叉树与堆

完全二叉树与堆 前言优先队列&#xff1a;堆向下调整维护堆向上调整维护堆堆的作用 前言 本文算是补充之前的系列&#xff0c;在前文中&#xff0c;讲了二叉树的基本结构与应用 二叉树从入门到AC&#xff08;1&#xff09;构建和前中后序遍历 二叉树从入门到AC&#xff08;2&a…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)

第一篇&#xff1a;Liunx环境下搭建PaddlePaddle 3.0基础环境&#xff08;Liunx Centos8.5安装Python3.10pip3.10&#xff09; 一&#xff1a;前言二&#xff1a;安装编译依赖二&#xff1a;安装Python3.10三&#xff1a;安装PIP3.10四&#xff1a;安装Paddlepaddle基础框架4.1…...