文章目录

  • 前言
      • ❓问题分析:为什么你的提交会“覆盖”别人的代码?
      • ✅ 正确的代码提交流程(结合你原文的说明)
        • **1. 确认自己在正确的分支上**
        • **2. 从主开发分支(如 dev)拉取最新代码并合并**
        • **3. 解决冲突(如有)**
        • **4. 自己测试通过,确保功能正常**
        • **5. 提交到本地仓库**
        • **6. 再次从远程拉一次(防止别人刚好也提交了)**
        • **7. 最后,推送代码到远程**
      • ❗一定要注意的点:
      • 🚫常见误区
      • 📌你提到的分支说明,再理一遍(加理解):
      • ✅ 总结一句话:
    • 1. **为什么会覆盖别人的代码?**
    • 2. **详细举例说明**
    • 3. **标准提交流程**
      • 步骤 1:切换到你的分支
      • 步骤 2:拉取远程最新 `dev` 代码,合并到你的分支
      • 步骤 3:解决冲突
      • 步骤 4:确认合并后测试代码
      • 步骤 5:提交合并后的代码
      • 步骤 6:再次拉远程代码,防止别人这时又提交了代码
      • 步骤 7:推送你的代码到远程分支
    • 4. **总结**
    • 5. **如果跳过这几个步骤,结果会怎样?**
    • 6. **分支说明**

前言

想不明白,为啥我提代码会把别人的代码覆盖掉呢? 注意注意:仓库提交代码,必须通过测试之后,没问题之后再提交!!!

记录: 提交前—>git选自己的分支—>checkout —>merge拉取—>然后有冲突解决冲突,合并代码,注意注意注意!!!要查看自己的提交和别人的代码,不要修改别人的代码 —>commit—>提交到local仓库 —>再次拉取新的远程仓库merge,以防commit之后,还有人提交 —>push—>提交到远程仓库

关于自己的分支和dev,master,test,feat分支区别: 自己的分支一般是从dev分支上merge过去,merge到自己的分支 dev分支—>开发主分支,提交前慎重,开发自测完要code review之后,还有提测完才能和master合并,注意注意!!! test分支—>测试分支,一般是junit单元测试分支 master—>业务上线版本分支,一般没事儿别在这上面提交代码!!! feat—>未来的新功能开发分支,后面也要往dev上合并!!!
这段话的核心是想理清一个问题:为什么你提交代码时,会把别人的代码“覆盖”掉?


❓问题分析:为什么你的提交会“覆盖”别人的代码?

这是因为 你本地代码不是最新的远程代码,你在提交时忽略了别人最近的提交或没有处理好合并冲突,导致:

你提交的内容把别人后来提交的内容“冲掉了”。


✅ 正确的代码提交流程(结合你原文的说明)

我帮你理一理标准操作顺序,并解释每一步原因:


1. 确认自己在正确的分支上
git checkout your-feature-branch

你的开发工作应当在你自己的分支上做,比如 feature/xxx,而不是在 devmaster 这种主分支上。


2. 从主开发分支(如 dev)拉取最新代码并合并
git fetch origin
git merge origin/dev

⚠️ 这一步非常重要!
目的是:拿到别人已经提交的最新代码,本地合并后解决冲突,保证你提交的不是“旧代码”。


3. 解决冲突(如有)

如果有冲突一定要认真处理,不能直接删掉或忽视别人加的代码,你可以:

  • 对比冲突内容,看哪部分需要保留
  • 用工具辅助,如 VS Code 的 Merge 工具

4. 自己测试通过,确保功能正常

不测试就提交很容易出错!


5. 提交到本地仓库
git add .
git commit -m "你的提交说明"

6. 再次从远程拉一次(防止别人刚好也提交了)
git fetch origin
git merge origin/dev

7. 最后,推送代码到远程
git push origin your-feature-branch

❗一定要注意的点:

  • 合并前一定要看一下别人改了什么,不能无脑合并、无脑覆盖。
  • 不要直接改别人的分支、不要直接改 master/test/dev 等主分支,你只能 PR 合并到主分支。
  • merge 有冲突就要认真解决,不是删掉冲突就完事,冲掉别人代码后果很严重。
  • 每次 push 前都要再拉一次远程,确保你本地是最新的。

🚫常见误区

错误行为后果
不拉远程直接提交覆盖别人最新代码
合并时不看冲突内容删掉别人写的逻辑
在 dev/master 直接写代码很可能引起线上事故或冲突混乱
提交前不测试上线后出 Bug

📌你提到的分支说明,再理一遍(加理解):

  • your-feature-branch:你自己的开发分支
  • dev:开发主分支,最终所有人代码都要合到这
  • master:上线分支,必须经过测试才合并
  • test:测试验证的分支,一般运行 CI / 单元测试
  • feat:未来功能实验分支,开发结束后合并到 dev

✅ 总结一句话:

提交代码前一定要保证你本地是最新的远程代码,并且认真处理合并冲突、保留他人代码逻辑,不要直接覆盖。


好的,我给你详细具体地解释,为什么你“提代码会覆盖别人的代码”,以及怎么避免。过程会尽量通俗易懂。


1. 为什么会覆盖别人的代码?

Git 是一个分布式版本控制系统,大家的代码是并行提交的。当你提交时,实际上是用你本地的代码去“替换”远程仓库里对应分支的代码。

问题根源在于:

  • 你本地代码和远程仓库的代码不一致(你本地是旧的,远程已经有人提交了新代码)。
  • 你直接把本地代码推上去(push),会把远程的内容“替换”为你的本地代码。
  • 但你的本地代码没有包含远程最新代码,就把别人改的代码“覆盖”了。

2. 详细举例说明

假设:

  • 远程 dev 分支上,Alice 提交了一段代码A
  • 你本地还是旧代码,没有拉取到Alice的改动

如果你直接 git push,你的旧代码会把包含代码A的远程代码覆盖,代码A就丢了。


3. 标准提交流程

步骤 1:切换到你的分支

git checkout your-feature-branch

你在自己分支上开发,不直接在主分支开发。


步骤 2:拉取远程最新 dev 代码,合并到你的分支

git fetch origin
git merge origin/dev
  • git fetch origin 会拉取远程仓库所有分支最新代码,但不合并。
  • git merge origin/dev 是把远程 dev 最新代码合并进你的分支。

为什么要这步?
确保你的代码和别人最新代码合到一起,避免冲突。


步骤 3:解决冲突

如果两边代码改了同一部分,Git 会告诉你有冲突:

CONFLICT (content): Merge conflict in your_file.java

你要手动打开冲突文件,Git 会标记冲突内容,比如:

<<<<<<< HEAD
你这边的代码
=======
远程dev的代码(别人改的)
>>>>>>> origin/dev

你要仔细合并,保留你和别人都需要的代码,去掉标记。


步骤 4:确认合并后测试代码

确保你的功能没问题,别人代码也没被破坏。


步骤 5:提交合并后的代码

git add .
git commit -m "合并dev最新代码,解决冲突"

步骤 6:再次拉远程代码,防止别人这时又提交了代码

git fetch origin
git merge origin/dev

如果没有新提交,这步不会改东西;如果有,重复解决冲突流程。


步骤 7:推送你的代码到远程分支

git push origin your-feature-branch

4. 总结

操作作用
git fetch origin获取远程最新代码,不修改本地
git merge origin/dev把远程最新代码合并到当前分支
解决冲突确保合并代码没有错误,保留双方代码
测试保证代码正确
git push把本地最新代码上传远程

5. 如果跳过这几个步骤,结果会怎样?

  • 你没拉取远程最新代码,push 时就直接覆盖远程代码,别人最新改动丢失。
  • 合并时没认真解决冲突,可能删了别人重要代码。
  • 直接在 devmaster 分支开发,风险高,容易破坏稳定代码。

6. 分支说明

  • 你的分支(feature 分支):自己开发用,不直接推到主分支
  • dev 分支:开发主线,功能合并汇总后,才推到这里
  • master 分支:上线分支,必须稳定,不随意改动
  • test 分支:测试用的,做自动测试等
  • feat 分支:未来新功能开发,合并到 dev

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/91817.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/91817.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/91817.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqli-labs:Less-20关卡详细解析

1. 思路&#x1f680; 本关的SQL语句为&#xff1a; $sql"SELECT * FROM users WHERE username$cookee LIMIT 0,1";注入类型&#xff1a;字符串型&#xff08;单引号包裹&#xff09;、GET操作提示&#xff1a;参数需以闭合关键参数&#xff1a;cookee php输出语句…

基于LevitUnet的超声图像分割

完整项目包获取&#xff1a;点击文末名片本项目旨在开发一个基于深度学习的图像分割模型&#xff0c;专门用于处理医学或遥感领域的图像数据&#xff08;以 TIFF 格式存储&#xff09;。通过结合 LeViT&#xff08;基于 Vision Transformer 的轻量模型&#xff09;和 U-Net 架构…

Java 17 新特性解析与代码示例

Java 17 新特性解析与代码示例 文章目录Java 17 新特性解析与代码示例引言1. 密封类&#xff08;JEP 409&#xff09;1.1. 介绍1.2. 详细说明1.3. 代码示例1.4. 与之前功能的对比1.5. 使用场景1.6. 总结2. switch 模式匹配&#xff08;预览&#xff0c;JEP 406&#xff09;2.1.…

SQL中的GROUP BY用法

GROUP BY 是 SQL 中用来“按列分组”的子句。 它把相同值的行分到同一个组&#xff0c;然后通常配合聚合函数&#xff08;COUNT, SUM, AVG, MAX, MIN 等&#xff09;对每个组做统计&#xff0c;最终每组只返回一行结果。✅ 1. 基本语法 SELECT 列1, 列2, 聚合函数(列3) FROM 表…

AI Agent开发学习系列 - LangGraph(10): 带有循环的Looping Graph(练习解答)

在AI Agent开发学习系列 - LangGraph(9): 带有循环的Looping Graph中&#xff0c;我们学习了如何创建带有循环的Looping Graph。为了巩固学习&#xff0c;我们来做一个练习。 用LangGraph创建如下图的一个Agent: 要求&#xff1a; 输入玩家姓名通过输入的上限值和下限值之间…

【保姆级 - 大模型应用开发】DeepSeek R1 本地部署全攻略:Ollama + vLLM + PyTorch 多选方案

DeepSeek R1 本地部署全攻略&#xff1a;Ollama vLLM PyTorch 多选方案 想部署 DeepSeek-R1 模型到本地&#xff0c;开启高性能推理体验&#xff1f;本文汇总了 Ollama、vLLM 及原生 PyTorch 的部署方法&#xff0c;适合不同开发者需求。 &#x1f3af; 下载模型 (必做) ----…

使用 Vive Tracker 替代 T265 实现位姿获取(基于 Ubuntu + SteamVR)

在Dexcap这篇工作列出第二版硬件清单时&#xff0c;我注意到其使用 Vive Tracker 替代 Intel T265 来获取位姿数据&#xff0c;对这个东西的性能感到好奇&#xff0c;最近因为需要跟进相关工作&#xff0c;参与了一部分实现&#xff0c;由于这方面的中文资料相对较少&#xff0…

博物馆 VR 导览:图形渲染算法+智能讲解技术算法实现及优化

本文面向博物馆数字化开发技术员、VR 系统工程师等技术同仁们&#xff0c;聚焦图形渲染算法在博物馆 VR 导览中的核心应用&#xff0c;解决虚拟展馆还原精度不足、多终端适配卡顿、智能讲解触发延迟等实际技术问题。如有项目合作及技术交流欢迎私信作者~一、VR导览技术痛点1.3D…

zset 中特殊的操作

首先 zset 与我们常规的 redis 操作有所不同, 这里的时间复杂度基本都是 O(log N) 起步的 目录 1. zcount 2. zpopmax 1. zcount zcount key min max : 这里求的是 key 中下标在 min 和 max 之间的 元素的数量, 这里是比区间 我们要是想排除端点, 就需要加上 ( , 无论是…

KSP与ASM深度对比:原理、性能与使用场景

一、核心目的差异1. KSP&#xff08;Kotlin Symbol Processing&#xff09;核心目的&#xff1a;在编译时生成新代码&#xff0c;解决样板代码问题(操作对象:.kt源文件编译过程中的中间表示)主要场景&#xff1a;自动生成DI&#xff08;依赖注入&#xff09;配置代码创建路由映…

【LLM】如何在Cursor中调用Dify工作流

这篇文章将通过一个接口文档知识库示例&#xff0c;带你了解如何在 Cursor 中通过 Mcp Server 调用 Dify 平台配置的工作流。 1. 准备工作 需要准备文本生成模型、向量模型、Rerank 模型&#xff08;可选&#xff09;&#xff0c;这些都可以在 阿里云百炼平台 申请免费使用额度…

L1、L2正则化的几何解释

L2正则化: 图中用几何方式形象地解释了 Ridge 回归&#xff08;L2正则化&#xff09;的原理。 ① 阴影圆&#xff1a;可以理解为&#xff08;w1^2 w2^2&#xff09;​≤R^2&#xff0c;圆周表示目标函数的约束线&#xff0c;这个圆表示了我们的参数 (w1,w2)可以活动的范围。 …

【学习笔记】Java并发编程的艺术——第1章 并发编程的挑战

第1章 并发编程的挑战 1.1 上下文切换 即使是单核处理器也支持多线程执行代码&#xff0c;CPU给每个线程分配CPU时间片实现多线程&#xff0c;而每个时间片一般是几十毫秒&#xff0c;所以多个线程感觉是同时执行的 但同一个核切换线程执行时会保存运行状态&#xff0c;以便下次…

leecode3 无重复元素的最长子串

我的思路 原始代码 我发现我虽然解决问题了&#xff0c;但是我的思路不简洁&#xff0c;不明白。 这个题本质上还是滑动窗口的问题。 具体思路为先定义两个指针&#xff0c;对应滑动窗口的两个边界关键是&#xff1a;定义一个集合&#xff0c;来判断这个窗口中的元素是否存在重…

【嵌入式汇编基础】-ARM架构基础(三)

ARM架构基础(三) 文章目录 ARM架构基础(三) 7、AArch64 执行状态 7.3 程序计数器 7.4 堆栈指针 7.5 零寄存器 7.6 链接寄存器 7.7 帧指针 7.8 平台寄存器 (x18) 7.9 过程内调用寄存器 7.10 SIMD 和浮点寄存器 7.11 系统寄存器 7.13 PSTATE 7、AArch64 执行状态 7.3 程序计…

[buuctf-misc]喵喵喵

m题目在线评测BUUCTF 是一个 CTF 竞赛和训练平台&#xff0c;为各位 CTF 选手提供真实赛题在线复现等服务。https://buuoj.cn/challenges#%E5%96%B5%E5%96%B5%E5%96%B5BUUCTF 是一个 CTF 竞赛和训练平台&#xff0c;为各位 CTF 选手提供真实赛题在线复现等服务。https://buuoj.…

Vue 详情模块 2

Vue 渐进式JavaScript 框架 基于Vue2的移动端项目&#xff1a;详情基础内容&#xff0c;日期及电影描述 目录 详情 详情基础内容 初始化与赋值 渲染基础内容 详情样式 日期处理 安装moment 定义过滤器 使用过滤器 电影描述 总结 详情 详情基础内容 初始化与赋值 …

【MODIS数据】MYD03

&#x1f30d; 遥感数据的“导航仪”&#xff1a;深入解析MYD03地理定位产品 在卫星遥感领域&#xff0c;精确的地理定位是数据应用的基础。作为Aqua卫星中分辨率成像光谱仪&#xff08;MODIS&#xff09;的核心支撑产品&#xff0c;MYD03虽不如地表温度或植被指数产品知名&am…

如何填写PDF表格的例子

实际应用场景中&#xff0c;我们会遇到需要根据会话内容自动填写表格的情况&#xff0c;比如&#xff1a;pdf 表格。假设根据会话内容已经获得相关信息&#xff0c;下面以填写个人信息为例来说明。个人信息表格.pdf填写后的效果&#xff1a;填写代码如下&#xff1a;from pdfrw…

2023年影响重大的网络安全典型案例

以下是2023年影响重大的网络安全典型案例&#xff0c;按时间顺序梳理事件经过及技术细节&#xff1a;---一、DeFi协议攻击&#xff1a;dForce借贷协议遭入侵&#xff08;2023年4月&#xff09;** - 时间线&#xff1a; - 4月19日08:58&#xff1a;黑客开始攻击Lendf.Me合约&…