在数据库里玩“平行宇宙”:MatrixOne Data Branch 让数据也拥有Git 的分支/合并/对比/回滚(含跨集群同步)

数据集版本管理:Git for Data时代来临 文章标题 《数据集版本管理:Git for Data时代来临》 关键词: 数据集版本管理,Git,数据管理,版本控制,数据科学,AI,技术博客。 摘要: 本文将探讨数据集版本管理的 阅读详情

这篇文章讲一件事:当数据像代码一样频繁迭代时,数据库内生的“分支工作流”会比备份/复制更可靠、更省钱、更工程化。


1. 从一个真实的“数据事故现场”开始

当你的 AI 模型不慎清空了核心数据库,或者错误地注入了大量虚假数据,传统的数据恢复手段往往让人崩溃——不仅耗时费力,还可能无法完全找回丢失的数据。然而,“Git for Data” 带来的全新范式能改变这一局面,让上述场景的恢复变得像回滚代码提交一样简单
。例如,在 MatrixOne 数据库中,只需一条命令就可以将数据库瞬间恢复到指定时间点,如:

Restore Database my_ai_data_db {snapshot/timestamp}

这样的能力源自于将 Git 的分支(version branch)理念引入数据管理,使我们能够像管理代码那样管理数据的版本和变更 。本文将结合当前数据管理的难点,介绍 MatrixOne 数据库最新推出的 Branch(分支)功能 是如何有效解决这些痛点的,并展示这一理念在行业内外的探索与应用。


2. 为什么数据也需要 Branch?

数据管理的难点——版本混乱与协作困境

在进入正题之前,让我们先看看当今数据管理面临的典型难题。这些问题与十多年前软件开发在 Git 出现之前的境况十分类似:

  • 数据变更如同“开盲盒”:一次误操作或 AI 模型的“幻觉”导致的数据污染,往往难以追溯源头,更别提轻松回滚了。很多企业对于数据的修改缺乏完善的记录机制,一旦出现错误,需要耗费大量时间排查问题。
  • 版本管理靠“复制粘贴”:为了做实验或分析,数据工程师常常不得不复制出 TB 级别的数据副本。这样不仅成本高昂,而且产生了众多不同版本的孤立副本,版本混乱难以管理。不同人员可能各自为政,拷贝出自己的数据集,稍有不慎就会出现数据不一致。
  • 团队协作靠“默契”:多个团队并行处理同一批数据,经常互相干扰。由于缺乏工具支持,协同主要依赖人为约定,比如“不要动我那一份数据”,流程缺乏工程化保障。这就像软件开发没有版本控制时,团队合作全凭信任,一不小心就冲突迭代,后果严重。

上述种种痛点表明,当前的数据管理仿佛仍停留在“Git 出现之前”的原始阶段。正因如此,有人提出:如果数据是 AI 时代的“代码”,我们亟需一个面向数据的“Git”来彻底革新数据管理。这正是“数据分支”理念诞生的背景。

分支理念:让数据管理进入工程化新范式

“Git for Data”(数据版 Git)并非单指某个独立功能,而是全新的数据管理范式。它借鉴了软件工程领域成熟的版本控制思想,应用到数据全生命周期的管理中。本质上,这一范式围绕三大核心能力展开:

  • 瞬间快照与快速回滚:每一次数据变更都被记录留痕,可以随时为任何版本的数据打上“存档点”。一旦发生误操作或数据污染事件,我们可以一键回滚到上一个健康版本,整个过程在毫秒级或秒级内完成。传统“删库跑路”之所以可怕,是因为数据改动后难以复原;而有了可及时快照和回滚的能力,数据安全不仅靠权限控制,更有了随时恢复的底气。
  • 毫秒级克隆与隔离分支:基于分支和零拷贝克隆技术,我们可以在毫秒内为每个数据工程师或每个实验创建独立且隔离的数据分支环境。这些分支共享底层存储,几乎不产生额外空间开销,因此克隆哪怕 TB 级的数据也不再耗时耗存储。团队成员能够各自在自己的数据分支上自由清洗、标注和测试模型,互不干扰;实验验证成功后,再将修改合并回主干。整个流程清晰、高效且安全,就如同多人在各自的代码分支上开发再合并代码一样。
  • 版本差异对比与审计:通过版本比较功能,你可以清楚看到两个数据版本(或两个分支)之间的差异,精确定位到行/字段级别;同时记录变更时间、操作者与修改内容,为数据质量控制和合规审计提供依据。换言之,谁在何时做了什么改动,一目了然,数据版本的“责任追溯”变得和代码版本一样透明。

通过以上能力,数据管理终于可以像软件工程一样标准化、可追溯、可协作。数据分支让开发者能够安全地尝试大胆的假设,快速验证并回退错误。这极大提升了 AI 研发迭代速度——据实际经验,可将数据准备和模型验证周期从过去的数周缩短到数天。可以说,Git for Data 打破了 AI 开发的瓶颈,让数据不再成为拖累项目进度的障碍,而成为敏捷迭代的基石。


3. MatrixOne 的分支功能:数据库引擎中的“Git for Data”

要把“Git 式数据工作流”真正落地,离不开数据库在存储、元数据和权限上的原生支持。MatrixOne 在保持 MySQL 协议兼容的同时,把快照、分支、对比、合并、回滚做成了一套可工程化复用的 SQL 工作流。

3.1 你能直接用到的能力(对应 Git 心智)

  • Snapshot(存档点):为表/库打快照,作为稳定的回滚锚点。
  • Branch(隔离环境):从快照或当前版本“切出”一条数据分支,用于清洗、标注、实验验证,互不干扰。
  • Diff(变更可视化):对比两个版本/分支的差异,定位到具体行/字段,便于追溯与审计。
  • Merge(把改动带回主干):把分支上的有效变更合并回主表/主分支,并支持冲突处理策略。
  • Restore(事故止血):把表/库快速恢复到指定快照或时点。

3.2 为什么能“毫秒级创建且省存储”

这背后依赖的是数据库引擎的底层能力,而不是简单的“复制一份数据”:

  • Copy-on-Write(写时复制)+ 共享存储:分支创建近似零拷贝,TB 级数据也能快速克隆;只有发生写入时才产生增量开销。
  • 存储计算分离 + 分布式架构:分支创建/删除开销更低,实例启动与扩缩更敏捷。
  • 容器化与共享存储的工程化落地:让“开分支/开环境”从流程变成日常动作。

3.3 不止结构化表:统一纳入版本管理

MatrixOne 并非只关注结构化表。作为多模态融合的数据平台,它能把结构化表、半结构化 JSON、甚至向量索引等数据形态统一纳入快照与分支管理,减少“多系统各自为政”带来的数据孤岛。

归根结底,MatrixOne 做的是把数据变更从“黑盒手工活”变成“可追溯的工程流程”:你可以大胆试验、快速验证;一旦出错,也能把影响控制在分支内或一键回到健康版本。

在 MatrixOne 里面你可以把它理解为:

Snapshot ≈ commit 点,Branch ≈ 分支引用,Diff/Merge/Restore ≈ Git 操作,而且一切都是 SQL。


4. 一套完整可跑的 SQL:base → snapshot → branch → dml → diff/merge → restore

4.1 初始化:base 表 + 初始数据

drop database if exists demo_branch;
create database demo_branch;
use demo_branch;

create table orders_base (
  order_id     bigint primary key,
  user_id      bigint,
  amount       decimal(12,2),
  risk_flag    tinyint,           -- 0=正常, 1=高风险
  promo_tag    varchar(20),       -- 活动标记
  updated_at   timestamp
);

insert into orders_base values
(10001, 501,  99.90, 0, null, '2025-12-01 10:00:00'),
(10002, 502, 199.00, 0, null, '2025-12-01 10:00:00'),
(10003, 503,  10.00, 0, null, '2025-12-01 10:00:00');

4.2 第一次“存档”:给 base 打快照(sp_v1)

create snapshot sp_orders_v1 for table demo_branch orders_base;
show snapshots;

4.3 从快照拉两条分支:风险修复线 & 活动实验线

data branch create table orders_riskfix from orders_base{snapshot='sp_orders_v1'};
data branch create table orders_promo  from orders_base{snapshot='sp_orders_v1'};

4.4 在分支上随便改:互不干扰

-- 风险修复分支:标记高风险、删除并修复一条记录
update orders_riskfix
   set risk_flag = 1,
       updated_at = '2025-12-01 10:05:00'
 where order_id = 10002;

delete from orders_riskfix where order_id = 10003;

insert into orders_riskfix values
(10003, 503, 10.00, 0, 'repaired', '2025-12-01 10:06:00');


-- 促销分支:打活动标记 + 打折 + 新增订单
update orders_promo
   set promo_tag = 'double11',
       amount = amount * 0.9,
       updated_at = '2025-12-01 10:07:00'
 where order_id in (10001, 10002);

insert into orders_promo values
(10004, 504, 39.90, 0, 'double11', '2025-12-01 10:07:30');

4.5 给分支头再打快照:为了可重复 diff

create snapshot sp_riskfix for table demo_branch orders_riskfix;
create snapshot sp_promo   for table demo_branch orders_promo;

4.6 Diff:两条分支到底改了什么?

data branch diff orders_riskfix{snapshot='sp_riskfix'}
  against orders_promo{snapshot='sp_promo'};

4.7 Merge:把“正确的改动”合并回主干

-- 先把风险修复合回主干
data branch merge orders_riskfix into orders_base;

-- 再尝试把促销合回主干(冲突策略示例)
data branch merge orders_promo into orders_base when conflict skip;
-- data branch merge orders_promo into orders_base when conflict accept;

4.8 不满意?Restore:把主干一键回到 sp_orders_v1

restore database demo_branch table orders_base from snapshot sp_orders_v1;

5. 一张图看懂:数据血缘 + diff/merge/restore

在这里插入图片描述


6. 进阶玩法:Branch 也是“数据同步/跨集群同步”的基础设施

很多人第一次看到 Data Branch,会把它理解成“数据研发协作工具”。
但它还有一个更工程化的隐藏技能:把 diff 变成可携带、可重放的“数据补丁(patch)”。

一句话:

在源集群算出 diff → 把 diff 输出成文件(本地或 stage)→ 在任意地方重放(apply)这份 diff。

这对“跨集群同步 / 预发环境刷新 / 灾备演练 / 分布式团队协作”特别有用。

6.1 Diff 输出成文件:CSV(全量初始化)或 SQL(增量补丁)

MatrixOne 支持把 DATA BRANCH DIFF ... 的结果直接输出成文件:OUTPUT FILE '<dir>'。

data branch diff branch_tbl against base_tbl output file '/tmp/diffs/';

官方用例里给了两种输出形态(非常关键):

  1. 目标为空(初始化同步)→ 输出 CSV,并提示正确的 FIELDS/LINES 格式
  2. 目标非空(增量同步)→ 输出 .sql 补丁,Hint 明确告诉你会包含 DELETE FROM + REPLACE INTO

直觉理解:

  • 初始化:直接给你一份“全量可导入”的 CSV
  • 增量:给你一份“可重放的 SQL patch”

6.2 跨集群同步:把 diff 写到 stage(例如 S3),另一端拉取并重放

你可以把 diff 输出到 stage(例如 S3):

-- 源集群:创建一个外部 stage(S3 / 兼容 S3 的对象存储)
create stage stage01 url =
  's3://bucket/prefix?region=cn-north-1&access_key_id=xxx&secret_access_key=yyy';

-- 源集群:把 diff 直接写到 stage
data branch diff t1 against t2 output file 'stage://stage01/';

输出会告诉你保存到了哪个文件,并提示该 SQL 补丁主要由 DELETE FROM ...、REPLACE INTO ... 组成。

6.3 “Apply diff” 怎么做?(本质是重放生成的 SQL / 导入生成的 CSV)

这里有个非常务实的点:MatrixOne 目前并不是再提供一条 APPLY DIFF 的新语句,而是把 diff 产物变成“你能在任何地方执行/导入”的标准文件:

  • 如果 diff 输出的是 .sql:在目标集群执行该 SQL 文件即可(相当于 apply patch)
  • 如果 diff 输出的是 .csv:在目标集群把 CSV 导入到目标表即可(相当于 bootstrap)
6.3.1 重放 SQL diff(增量同步)

你可以用任意 MySQL 客户端方式执行 SQL 文件(因为 MatrixOne 兼容 MySQL 协议)。此外,MatrixOne 生态工具 mo_ctl 也支持直接执行 SQL 文件。

# 方式 A:用 mysql 客户端重放(示意)
mysql -h <mo_host> -P <mo_port> -u <user> -p <db_name> < diff_xxx.sql

# 方式 B:使用 mo_ctl 重放(示意)
mo_ctl sql diff_xxx.sql
6.3.2 导入 CSV diff(初始化同步)

MatrixOne 支持 LOAD DATA,并且文件来源可以是本地文件或 stage://...。

load data local infile '/tmp/diffs/diff_xxx.csv'
into table demo_branch.orders_base
fields enclosed by '"' escaped by '\\' terminated by ','
lines terminated by '\n';

如果 CSV 在 stage 上,也可以用 LOAD DATA INFILE 'stage://stage_name/path' ... 的方式直接从对象存储导入。


7. 行业视角:数据分支理念的实践与探索

MatrixOne 不是孤军奋战。近年来,“数据分支 / Git for Data”在业界逐渐兴起,不少产品和开源项目都在探索“把数据变更变成可追溯、可协作的工程流程”。下面是几个代表性案例(每个只保留你最需要记住的要点):

  • Dolt(Git 式版本数据库):把 commit/branch/merge 的心智搬进关系数据库(MySQL 风格),支持像做代码 PR 一样审阅与合并数据修改。
  • PlanetScale(Data Branching®):提供隔离的数据库分支(schema + data),底层偏零拷贝、写入才增量,适合快速拉生产数据做开发测试。
  • Neon(云原生 Postgres 分支):通过重构存储层实现秒级克隆与分支(Copy-on-Write),验证了“通过架构创新实现数据分支”的路线。
  • Supabase(分支驱动的预览环境):把数据库环境与应用 Git 工作流绑定,倾向“每个功能分支一个独立环境”;现阶段更多偏 schema branching + 种子数据,但方向明确。
  • TerminusDB(图/文档数据版本控制):面向 JSON/知识图谱提供 branch/merge/diff/log/commit graph,更适合需要追踪数据演进历史的知识库场景。
  • lakeFS(数据湖版本控制):在对象存储之上提供 Git-like 分支/提交,让数据湖里的数据与管道也具备可回滚、可审计的工作流。

综上可见,无论是数据库领域还是数据湖领域,版本化与分支化正在成为趋势:它们共同指向一个目标——让数据像代码一样可管理、可协作、可回退。

8. 写在最后:Branch 不是“功能”,而是一种数据工程方法论

“Branch”功能的出现,为长期困扰数据工作的诸多难题提供了一剂良方。

它把 “数据即代码(Data as Code)” 的思维落到数据库内核:数据变更可记录、可审阅、可回滚。
对 AI 与大数据团队而言,这意味着更高的数据安全底线、更强的协作一致性,以及更快的试验迭代速度。

当你把 Data Branch 用在真实项目里,它会自然长成一套流程:

  • 每次大规模清洗/标注/特征工程:先打 snapshot,再开分支
  • 每个算法实验:一人一分支(甚至每个 PR 一分支)
  • 上线前:diff + review + merge(像 code review 一样 review 数据变更)
  • 跨集群/跨环境:diff 输出成文件(本地或 stage)→ 在目标集群重放(apply)
  • 出事故:restore 回健康快照,先止血,再排查

展望未来,我们有理由相信数据分支将成为数据基础设施的标配能力之一。
当数据管理变得和代码管理一样严谨且可追溯时,数据会从“沉睡的负担”变成“敏捷创新的加速器”。
对于身处 AI 时代的企业,引入“Git for Data”是一条清晰路径:让数据的每一次演进有迹可循,让每一次试验都有退路,让创新迭代更快一步。


参考链接

GitDataV基于Vue框架构建的github数据可视化平台 GitDataV - 基于Vue框架构建的github数据可视化平台 立即下载

相关推荐

LibTV保姆级教程:从提示词到AI视频成片全流程

AI视频生成技术正以前所未有的速度重塑内容创作行业,过去需要编剧、摄影、剪辑等多角色协作的复杂流程,如今借助AI绘画与图生视频等核心能力,一个人也能完成高质量短视频制作。理解提示词工程是掌控AI视频创作的关键,通过精准描述主体、环境、光线与运镜,可以显著提升生成画面的稳定性与专业度。而图生视频技术则让静态分镜自然流动,有效解决角色一致性与场景漂移等常见问题。这类工具已广泛应用于产品宣传、剧情短片、社交媒体内容生产等场景,大幅降低了视频创作门槛。本文以LibTV一站式AI视频创作平台为例,从核心概念到完整实操

weixin_29046035的博客 992

git的基本操作以及分支和循环

gitee/GitHub有关git的基本操作以及分支和循环

weixin_54226901的博客 411

Ren’py教程《从入门到精通》

Ren’py是什么?Ren'py是一款用于制作视觉小说、冒险游戏、galgame的游戏制作工具,被来自世界各地的数千名创作者使用。Ren'py的名字由Ren’ai和Python混合而成,而Python也是Ren'py所使用的环境语言。Ren'py可以帮助你使用文字、图像和声音来讲述在计算机和移动设备上运行的交互式故事。这些既可以是视觉小说,也可以是生活模拟游戏。易于学习的脚本语言允许 任何人都可以有效地编写大型视觉小说,而它的Python 脚本足以应对复杂的 模拟游戏。

2302_77140651的博客 1万+

Git for Data:像Git一样管理你的数据

摘要 AI时代的数据管理面临新挑战,MatrixOne提出"Git for Data"解决方案,将代码版本控制理念引入数据管理。该方案支持数据版本控制、快速回滚、分支管理等功能,能有效应对AI幻觉、确保数据溯源、提升协作效率。核心能力包括细粒度版本控制、秒级恢复、数据分支/克隆、权限管理等,基于存储优化技术实现低成本高效运作。作为云原生超融合数据库,MatrixOne兼容MySQL,支持多模态数据存储,为AI应用开发提供敏捷、安全的数据管理新范式。

MatrixOrigin的博客 1095

MEG预处理-Brainstorm

Brainstorm下载和安装 去Brainstorm官网进行下载:打开网页后,点击左侧Download;在跳出来的界面中进行简单的注册,注册完成后可以进行下载 解压后得到“brainstorm3”的文件夹,里面包含Brainstorm工具包的所有文件,把这个文件夹放在某个路径如"E:\matlab_tools\brainstorm3"即可 同样在某个路径建立空的文件夹命名为:brainstorm_db用于工具包运行过程中自动存储生成的文件,所以这个文件中生成的数据不要手动移动删除 在Matlab中,把.

AxeChen的博客 6127

光谱分布、光谱辐射通量密度与不同时间段分布光谱(图示)

1、光谱分布图 2 太阳辐射能量图 3、不同时间段的太阳分布光谱图 4、不同波长的光的能量分布主要区域 5、不同波段的使用场景

maopig的专栏 2万+

支路数据 branch data

`rateA`、`rateB`、`rateC`:线路的不同热极限等级,代表线路能够承受的最大功率(通常以MVA为单位)。- 下面的三个数字(`rateA`、`rateB`和`rateC`)是支路的热极限额定功率,以兆瓦(MVA)为单位。- 最后两个数字(`angmin`和`angmax`)是支路上允许的最小和最大角度差,通常是稳定性研究中的限制条件。- 第十列(`status`)表示支路是否处于运行状态(`1`表示运行中,`0`表示停运)。- 接下来的两个数字(`r`和`x`)分别是支路的电阻和电抗。

weixin_65744632的博客 1737

ArcGIS中如何计算多个点到特定线的最短距离

现有一个点图层和一个面图层,怎么来计算这些点到这个面图层,两个面的公共边的最短直线距离呢? 1.首先得将两个图层都转为 投影坐标系 打开工具箱-数据管理工具-要素-面转线 ​ ​ 2.将面图层设为输入要素 注意要将“识别和存储面邻域信息”勾选 ​ 3.面转线成功后 打开线属性表,线图层拥有了 LEFT_FID和RIGHT_FID两个字段 ​ 4.按属性选择,表达式中输入 “LEFT_FID”<>-1 即可选出两个面的公共边 ​再将选...

GIS蒲公英的博客 6726

AI时代的数据管理新范式:Git for Data让数据工程化

AI快速发展与企业数据管理滞后的矛盾日益突出。算法迭代日新月异,但企业数据多沉睡在孤岛中,格式杂乱,导致70%的AI项目时间耗费在数据准备上。软件开发已实现工程化,数据管理却仍处"前Git时代":变更难追溯、版本靠复制、协作靠默契。文章提出"Git for Data"新范式,通过瞬间快照、毫秒级克隆分支和版本审计三大能力,实现数据工程化管理。MatrixOne数据库作为技术底座,支持这一范式落地,将AI开发周期从数周缩短至数天,助力企业构建AI核心竞争力。

MatrixOrigin的博客 646

传感器使用——ESP-WROOM-32 and INMP441麦克风音频采集

传感器使用——ESP-WROOM-32 and INMP441麦克风音频采集,数据显示及matlab操作界面。

qq_41958946的博客 7355

打开.nc降水气象数据制作年降水量地图

图层的单位为度,在反距离插值中也是以度为单位,比较麻烦,还是想用以m为单位的投影,这里是个bug,后续调整一下。该彩色部分是以2021年1月、2月、3月的降水数据分别作为RGB得到。因为该栅格的分辨率还是太大了,一个栅格就能覆盖一个县,若想要进行降尺度,可以做插值处理。下载的数据集为2021-2022年,因此有12+12=24个月,24个波段。想要得到廊坊市周围的数据,需要裁剪范围,在降水数据图层上导出数据。打开数据管理工具-投影和变换-定义投影。在降水数据图层上右击属性,添加投影。得到了降尺度的插值图。

所有专家都曾始于新手 4520

Dolt – Git for Data 使用教程

Dolt 是一个 SQL 数据库,它允许你像操作 Git 仓库一样进行数据库的版本控制。你可以对 Dolt 数据库进行 fork、clone、branch、merge、push 和 pull 操作,就像操作 Git 仓库一样。Dolt 是世界上第一个也是唯一一个版本控制的数据库,它提供了强大的数据审计功能,能够追踪数据库中每个单元格的历史变化。 ## 2. 项目快速启动 ### 安装 Dolt

gitblog_00573的博客 987

【C语言】字符常量详解

字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。

LuckiBit 5022

Git三大特色之Branch(分支)

我习惯每篇博客都有个开篇 还记得 Git 系列第一篇 Git 自我介绍的话吗?其中有 Git 自己都赞同的三大特色 cheap local branching, convenient staging areas, and multiple workflows 轻量的本地分支, 方便的暂存,以及多工作流。其中因为有分支的存在,才构成了多工作流的特色,所以 Branch 不愧为 Git ...

浅浅同学的开发笔记 2万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

用Vue构建一个github“可视化大数据平台”-GitDataV,设计开发分享

写在前面GitDataV,是一个github“大数据可视化平台”,通过它你可以更直观的看到你在github里的一些数据,(之所以打双引号,是因为我觉得这个还没到大数据可视化的程度)。其实我在 上篇文章 分享的时候已经提到了这个想法,通过github提供的接口,做一个自己的“大数据分析页面”,所以我就花了几天晚上的时间,把这想法从设计到开发...

weixin_34235105的博客 2116

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Windows开发工具环境管理:Git、Node.js、Python多版本与PATH冲突排查

Windows开发工具安装成功却无法运行,或始终调用错误版本?本文围绕Git、Node.js、Python及Codex CLI,系统讲解PowerShell命令解析、PATH环境变量、版本管理器冲突、npm脚本入口、Python install manager与虚拟环境管理。通过可复制的排查命令、Mermaid流程图、只读诊断工具和离线PATH实验,帮助开发者建立稳定、清晰、可复现的Windows开发工具链。

flyingonpine的博客 721

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

AI应用-多人AI协作越界处理

AI加速开发催生越界问题:多人协作中,AI因无视代码所有权而“顺手”修改他人文件,引发静默破坏、冲突与信任危机。根源在于AI无边界意识、改动生成快、评审难覆盖。治理需三道防线:事前用OWNERS.md明权责,事中通过本地Git Hooks实时提醒越界,事后以平台MR流程强制负责人评审。双方案结合,实现“提交即提醒、合入必审批”,在效率与安全间建立可持续协作机制。

326

[LLM Wiki理论与实践-05]解读OpenWiki的Personal模式构建的知识库目录结构

[LLM Wiki理论与实践-04:使用OpenWiki的Personal模式构建知识库]介绍了如何执行安装OpenWiki和通过执行`openwiki personal --init`命令以个人模式进行初始化,最终调用`openwiki personal --update`和`openwiki ingest`命令利用配置的Connector加载外部数据源来生成构建个人知识库的Wiki页。这篇文章我们就来看看采用OpenWiki的Personal模式构建的知识库对应目录的结构以及具体文件的内容。

JaydenAI的博客 371

自建 Git 服务器和裸仓库差在哪:要能提合并请求

在一台 Linux 上 git init --bare 就能自建 Git 服务器,但它只能推拉代码,没有网页、合并请求、评审和按仓库分配的权限。对照裸仓库和 AngusGit 各自能做什么,再走一遍在 AngusGit 上发起合并请求的最短路径,以及已有裸仓库怎么完整搬过来。

AngusTester 334

重装 openvino、yaml-cpp

【代码】重装 yaml-cpp。

u010948546的博客 223

手机远程能开PowerShell、Git Bash吗?ToDesk v5.3.0.0 远程终端三种玩法

手机远程控制电脑,能直接打开 PowerShell 和 Git Bash 吗?ToDesk v5.3.0.0 带来了更便捷的远程终端操作体验。本文围绕远程终端的三种实用玩法展开,介绍如何通过手机远程连接电脑、使用 PowerShell 执行系统命令、借助 Git Bash 进行代码管理,以及多终端操作的应用场景,帮助你了解远程终端的使用方法,提升远程办公、开发调试和日常运维效率。

承于所学,探技术之渊;以代码求政,寻成长之道。 2万+

【git原理与使用】git基本操作及底层原理(二)

此时我们发现,现在这个目录下就只有readme这一个文件了,并且readme里面的内容也只有最初的第一行了(因为工作区也回退了),git log也只打印了第一次的提交了!当前我们的版本库中是没有更新readme的这次修改的,所以当前版本库的这个版本就是没有发生修改的版本,那不这次readme文件修改之前的版本嘛。通过上一篇文章的学习,我们知道了 Git 有工作区、暂存区和版本库。如果有一天你发现之前的工作做的出现了很大的问题,需要在某个特定的历史版本重新开始,这个时候,就需要版本回退的功能了。

m0_70980326的博客 165

自建git服务器需要安装什么套件,需要web应用吗?

自建 Git 服务器的方式有很多种,是否需要 Web 应用取决于你想要的协作体验和功能复杂度。如果你只需要“能 push / pull 代码” → 不需要 Web 应用​。👉 结论:如果你只是想三丰云“有个地方放代码”,完全不需要 Web 应用。如果你需要“团队协作、权限、PR、Issue” → 需要 Web 应用。二、进阶方案:免费云服务器做带 Web 界面的 Git 服务(推荐)一、最简方案:只用 Git 本身(不需要 Web 应用)五、是否需要 Web 应用?✅ 方案二:GitLab(功能最强)

xinhuanjieyi的博客 164

SAP abapGit 实战(三):把改动上传到 Gitee,单分支提交与多分支 PR 协作

回到 Gitee 仓库首页,在「近期动态」里可以看到刚刚提交的记录(示例:提交到 feature/test 分支,54ab379..664057c)。点击该提交即可跳转查看具体改动内容。在 SAP 里打开之前拉下来的对象,随便改一点内容(本文示例给函数模块 ZCM_APPEND_BUTTON 加了一段注释和局部变量声明),用来产生一个可提交的改动。,可以看到 LOCAL(SAP 本地)与 REMOTE(Gitee)的内容对比,改动的行会高亮显示。切到目标分支并执行 pull,系统里的对象变成该分支的状态。

qq_43773123的博客 122

git配置项目子模块

java 的常规依赖通常是采用maven的方式进行操作的,但这次采用的方法是直接使用git submodules进行配置。方式A\方式B都需要将依赖 libs 子模块 (lasp-common-all) 中的公共模块 放到 pom。等同于在libs 下,另外新增了一个git管理的 lasp-common-all项目。

日日留心的技术专栏 146
上一篇: 【MOI 实践 Vol.2】当表格填了两小时,结果公司名还填错了
下一篇: 数据里的“平行宇宙”:用分支管理实现数据的版本控制
MatrixOrigin
博客等级 码龄5年 708粉丝 230原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值