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

AI 时代的 Git 进阶术:如何优雅地让多个 Agent 并行开发

前情提要缘起AI 并发能力与传统 Git 工作流的碰撞接触到git worktree的直接原因是在使用 Claude Code 辅助编程时遇到的文件系统层面的物理瓶颈。当试图让 AI Agent 在同一个代码项目中并行开发两个不同的需求时由于传统的 Git 仓库在同一时刻只能检出一个工作分支导致多个 AI 任务无法在同一个工作目录下同时运行。为了给不同的 Agent 提供独立的物理执行环境我找到了git worktree。什么是 Git Worktree平时我们用git checkout切换分支时文件会在同一个文件夹里变来变去。如果你正在写一个大功能写到一半突然需要去修复一个紧急 Bug通常只能用git stash把代码藏起来或者先提交一个乱糟糟的 commit。git worktree是 Git 提供的一个强大的高级功能它允许你在同一个本地 Git 仓库中同时检出checkout多个不同的分支到不同的物理文件目录中。常用命令速查1. 添加新的工作区语法git worktree add 路径 分支名示例假设你当前在my-project目录下想在同级目录创建一个名为my-project-hotfix的文件夹并检出master分支git worktree add ../my-project-hotfix master如果你想基于当前分支创建一个新分支并检出到新工作区可以加上_-b_参数git worktree add -b hotfix/bug-123 ../my-project-hotfix master2. 查看当前所有的工作区可以列出当前仓库关联的所有物理路径及其对应的分支git worktree list3. 移除工作区当你完成了紧急修复不再需要那个目录时可以使用命令安全移除git worktree remove ../my-project-hotfix(注意移除前请确保该工作区没有未提交的更改否则 Git 会阻止你删除。可以加_-f_强制移除。)4. 清理失效的工作区如果你习惯直接在文件系统中“暴力”删除了工作区文件夹右键 - 删除Git 的内部记录里可能还会保留它的追踪信息。运行以下命令可以清理掉这些失效的记录git worktree prune怎么玩How首先创建一个Git仓库mkdirml-pipelinecdml-pipelinegitinit在这个仓库里添加 README.md 和一个 Python 文件echo# ML PipelineREADME.mdechodef load_data():train.pyecho print(Loading training data...)train.pycommit 并且创建一个分支gitadd.gitcommit-mInitial commitgitbranch feature-preprocessing现在你得到了一个有 2 个分支的 Git 仓库 main 和 feature-preprocessing 。为现有分支创建工作树只需一个命令gitworktreeadd../ml-pipeline-preprocessing feature-preprocessing这一步在当前位置的上一层级创建了一个名为 ml-pipeline-preprocessing 的文件夹接下来为另一个全新的工作同时创建一个分支和一个工作树gitworktreeadd-bfeature-visualization../ml-pipeline-viz-b 的意思是创建 feature-visualization 分支并在新的工作树中检出该分支worktree的结构gitworktree list第一行显示你的主工作树 —— 包含.git文件夹的原始目录。第二行显示你的链接工作树。两行都显示当前的提交哈希和已检出的分支。每个worktree目录都有完整的Git仓库功能。你可以进入目录编辑文件执行 git status 并且 commit 。但是链接的worktrees没有完整的 .git 文件夹而是使用一个 .git 文件用来指向主仓库。在主.git目录内部有一个worktrees文件夹用于存储每个链接工作树的元数据。在 worktree 中工作接下来可以进入 feature-preprocessing 并完成提交cd../ml-pipeline-preprocessingcattrain.pyEOF def preprocess_features(df): Normalize numeric features. return (df - df.mean()) / df.std() EOFgitaddtrain.pygitcommit-mAdd feature preprocessing function回到 main worktree 并且查看提交历史cd../ml-pipelinegitlog--oneline--all在 Worktree 目录中提交所有修改# 进入你的 worktree 物理目录cd../feature-worktree# 确认你在 feature-A 分支上gitbranch# 暂存并提交你的所有修改gitadd.gitcommit-mfeat: 完成在 worktree 中的开发过河拆桥清理 Worktree代码合并完并推送到远端后那个额外的物理文件夹和分支就没有利用价值了。为了保持环境整洁建议安全地删掉它们# 1. 安全移除物理工作区注意路径要写对gitworktree remove../feature-worktree# 2. 删除已经合并完毕的本地分支gitbranch-dfeature-AGit Worktree 使用案例并行开发Parallel feature development你正在实现自定义指标和一个新的数据加载器 —— 这是两个独立的功能。为每个功能设置一个工作树gitworktreeadd-bfeature-custom-metrics../ml-pipeline-metricsgitworktreeadd-bfeature-streaming-loader../ml-pipeline-loader现在的文件夹目录结构如下~/projects/ ml-pipeline/[main]- your usual work ml-pipeline-metrics/[feature-custom-metrics]ml-pipeline-loader/[feature-streaming-loader]现在可以分别在各自的终端运行并行这两个功能# Terminal 1cd~/projects/ml-pipeline-metrics python experiments/evaluate_custom_metrics.py# Terminal 2cd~/projects/ml-pipeline-loader pytest tests/test_data_loader.py-v两个进程会同时运行且不会产生冲突。当一个功能完成后将其合并并移除工作树cd~/projects/ml-pipelinegitmerge feature-custom-metricsgitworktree remove../ml-pipeline-metricsReferencehttps://git-scm.com/docs/git-worktreeGit Worktree Tutorial: Work on Multiple Branches Without Switching

相关文章:

AI 时代的 Git 进阶术:如何优雅地让多个 Agent 并行开发

前情提要 缘起:AI 并发能力与传统 Git 工作流的碰撞 接触到 git worktree 的直接原因,是在使用 Claude Code 辅助编程时遇到的文件系统层面的物理瓶颈。当试图让 AI Agent 在同一个代码项目中并行开发两个不同的需求时,由于传统的 Git 仓库…...

SimpleBLE:面向嵌入式教学的轻量级BLE外设开发库

1. SimpleBLE 库概述SimpleBLE 是为法国国立高等矿业学院(cole Nationale Suprieure de Mcanique et des Microtechniques, ENSMM)OBCP(Objets Connects et Protocoles — 物联网设备与协议)教学项目开发的轻量级蓝牙低功耗&#…...

VibeVoice实测分享:4人辩论脚本生成,角色音色分明不串戏

VibeVoice实测分享:4人辩论脚本生成,角色音色分明不串戏 你有没有遇到过这样的尴尬场景:精心写了一段四人辩论的脚本,想让AI帮忙生成音频,结果出来的声音,正方一辩和反方二辩听起来像同一个人,…...

写作效率翻倍,Typora 1.12.3 最新版本更新安装

Typora 1.12.3 是一款极简、所见即所得的跨平台 Markdown 编辑器,主打无干扰写作、实时渲染、全格式支持,1.12.3 为 2025 年 11 月稳定版,修复大量兼容性与导出问题。 一、核心定位 所见即所得:输入 Markdown 语法(**加…...

有哪些机构可以颁发信创产品评估证书?

在信创全面落地的当下,一张权威的“信创产品评估证书”已成为企业进入党政、金融等关键市场的“硬通货”。很多厂商常问:到底该找谁测?纵观行业,绝大多数具体且高效的评估工作,是由“省一级行业协会”或“头部行业联盟…...

C++ 基础核心知识

C 基础核心知识C作为一门兼具高效性和灵活性的编程语言,是系统开发、游戏引擎、嵌入式编程等领域的核心工具。本文将从变量类型、指针与引用、核心关键字、数据类型、宏 与高级修饰符、函数指针等高频基础知识点入手,夯实编程基础。一、变量的三类核心形…...

Windows系统下Claude Code的安装和使用

Claude Code 是由 Anthropic 推出的一款面向开发者的命令行 AI 编程代理(Agentic Coding Tool)。 它不仅仅是一个聊天机器人,而是一个能够自主理解任务、规划步骤、调用工具、执行代码并迭代修正的智能体(Agent)。它直…...

java微信小程序的社区后勤报修系统

目录需求分析与规划技术选型数据库设计关键功能实现安全与性能优化测试与部署扩展性考虑项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作需求分析与规划 明确系统核心功能:用户报修、工单管…...

深度拆解智能防作弊系统:从技术底层到场景落地

如今,线上期末考试、远程招聘笔试、职业资格线上认证、企业内部培训考核早已成为常态。但随之而来的,是考试公平性如何保障、监考效率如何提升的核心难题。传统人工监考不仅人力成本高,还存在盯防盲区、漏判误判、事后追溯难等诸多痛点&#…...

GAT vs GraphSAGE vs GCN:如何为你的图数据选择最佳模型(附性能对比)

GAT vs GraphSAGE vs GCN:图神经网络模型选型实战指南 当面对社交网络分析、推荐系统或分子结构预测等图数据任务时,算法工程师常陷入选择困境:是该用经典的GCN,采样高效的GraphSAGE,还是带注意力机制的GAT&#xff1f…...

java微信小程序高校学生兼职系统的设计与实现

目录需求分析技术选型数据库设计后端开发前端开发测试与部署运维与迭代项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作需求分析 明确高校学生兼职系统的核心功能需求,包括学生端、企业端和…...

【限时公开】某军工级RTOS移植内参文档(含S32K144+SafeRTOS双核隔离移植实录,含ASIL-B级栈溢出防护设计)

第一章:RTOS移植工程全景与安全合规基线RTOS移植并非单纯替换内核代码,而是一项横跨硬件抽象层、中间件集成、运行时验证与全生命周期合规治理的系统工程。其核心目标是在资源受限的嵌入式环境中,同时达成确定性调度、内存安全边界可控、实时…...

Qwen3.5-9B实战落地:法律文档+截图联合分析的智能问答系统搭建

Qwen3.5-9B实战落地:法律文档截图联合分析的智能问答系统搭建 1. 项目背景与价值 在法律服务领域,从业者经常需要同时处理大量法律文档和相关截图证据。传统方式需要人工反复比对文档内容和图片信息,效率低下且容易出错。Qwen3.5-9B模型的多…...

Android轮盘选择器的架构解构与技术选型决策框架

Android轮盘选择器的架构解构与技术选型决策框架 【免费下载链接】WheelPicker Simple and fantastic wheel view in realistic effect for android. 项目地址: https://gitcode.com/gh_mirrors/wh/WheelPicker 技术痛点与行业现状 在移动应用交互设计领域,…...

Tao-8k多轮对话效果展示:复杂任务规划与分解

Tao-8k多轮对话效果展示:复杂任务规划与分解 最近体验了不少大模型,发现一个挺有意思的现象:很多模型在单轮问答上表现不错,但一旦进入需要连续思考、层层递进的多轮对话,就容易“掉链子”。要么是记不住前面的对话&a…...

Qwen3.5-9B多模态推理:视频帧理解+时序逻辑推断能力展示

Qwen3.5-9B多模态推理:视频帧理解时序逻辑推断能力展示 1. 模型核心能力概览 Qwen3.5-9B作为新一代多模态大模型,在视频理解领域展现出突破性的技术能力。该模型通过创新的架构设计,实现了对视频内容的深度解析和时序逻辑推理。 核心增强特…...

日语考级资源合集

N1-N5日语全套 文件大小: 34.0GB内容特色: 含N1-N5真题、词汇、语法、听力与教材适用人群: 零基础至JLPT冲刺考生核心价值: 一套通关,听说读写全搞定下载链接: https://pan.quark.cn/s/9da53887ee0f 094535_38门小语种语言学习教程 文件大小: 47.0GB内容特色: 38…...

异步编程优化:从底层源码看最佳实践

异步编程优化:从底层源码看最佳实践问题背景在.NET开发中,我们经常会遇到需要封装同步API为异步方法的情况。特别是当底层库没有提供异步版本时,我们不得不使用Task.Run来实现伪异步,这会导致线程池线程的浪费。本文将从.NET底层源…...

【复现】同时考虑考虑孤岛与重构的配电网故障恢复运行策略附Matlab代码

作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真关注我领取海量matlab电子书和数学建模资料 🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。&#x1f52…...

【Python基础入门】第四课: 函数

大家好,欢迎来到Python基础第四课!前三节课我们学习了变量、数据类型、运算符、流程控制和容器类型。今天我们要进入编程中最重要的概念之一——函数。如果说变量是数据的容器,那么函数就是代码的容器。学会函数,你就能告别重复代…...

踩坑复盘:弃MySQL选PostgreSQL,地理数据存储终于不头疼了

一、项目血泪史:MySQL存储地理数据,真的太不方便环卫车轨迹系统的核心难点,就是既要存车辆、任务这类标准结构化业务数据,保证数据规范和事务一致性,又要处理大量GPS轨迹、电子围栏这类地理空间数据,实现实…...

剪流AI手机受欢迎程度怎么样?深度解析其精准数据获客之道

在当今信息爆炸、竞争白热化的商业环境中,企业普遍面临获客成本高、效率低、精准度不足等挑战。剪流AI手机作为一款融合前沿人工智能技术的智能设备,正迅速成为众多企业关注的焦点。其受欢迎程度不仅源于硬件品质,更在于它如何通过AI驱动&…...

国家级认证 信息系统项目管理师(软高)一站式通关课程

破局程序员35岁危机:信息系统项目管理师获课:97it.top/14591/如何重构职业发展曲线 ——从技术执行者到战略决策者的跃迁路径 一、程序员转型的必然性与高项证书的战略价值行业倒逼转型的三大信号 技术迭代加速:低代码/AI编程工具逐步替代…...

如何借助开源字体实现专业级排版?——EB Garamond 12复古字体全维度应用指南

如何借助开源字体实现专业级排版?——EB Garamond 12复古字体全维度应用指南 【免费下载链接】EBGaramond12 项目地址: https://gitcode.com/gh_mirrors/eb/EBGaramond12 在数字设计领域,选择合适的字体往往是提升作品专业质感的关键环节。EB Ga…...

魔兽争霸III现代化改造:从卡顿到流畅的技术革新之路

魔兽争霸III现代化改造:从卡顿到流畅的技术革新之路 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 问题发现:当经典遭遇现代硬…...

MiniMax Token Plan 权益码

MiniMax 专属邀请码订阅 Token Plan,享9折优惠,并获得 Builder 身份👉 立即参与:https://platform.minimaxi.com/subscribe/token-plan?code1EcvFvxqXP&sourcelinkMiniMax M2.7 已上线 性价比突出 与 openclaw 最佳组合之一。…...

小说作者必备:用次元画室5分钟搞定主角视觉形象

小说作者必备:用次元画室5分钟搞定主角视觉形象 作为一名小说作者,你是否经常遇到这样的困境:脑海中那个鲜活的角色形象,却无法准确传达给插画师?或者花费大量时间寻找参考图,结果画出来的角色总差那么点意…...

Sigfox_Com轻量库:嵌入式Sigfox通信快速集成指南

1. Sigfox_Com 库概述Sigfox_Com 是一个面向嵌入式平台的轻量级 Sigfox 通信协议封装库,其核心设计目标是解耦硬件抽象层与 Sigfox 协议逻辑,使开发者能够将任意具备标准 UART 接口的 Sigfox 模块(如 WISOL WSSFM10/12、TELECOM SFX-3000、ON…...

Pixel Dimension Fissioner实战:结合RAG实现领域知识约束的维度裂变

Pixel Dimension Fissioner实战:结合RAG实现领域知识约束的维度裂变 1. 工具概览与核心价值 Pixel Dimension Fissioner(像素语言维度裂变器)是一款基于MT5-Zero-Shot-Augment核心引擎构建的创新型文本增强工具。与传统AI写作工具不同&…...

CBAM注意力机制实战:如何在PyTorch中轻松集成通道与空间注意力模块

CBAM注意力机制实战:PyTorch中通道与空间注意力模块的高效集成指南 在计算机视觉领域,注意力机制已经成为提升卷积神经网络性能的关键技术。CBAM(Convolutional Block Attention Module)通过同时关注"什么特征重要"&…...