学习笔记/南京大学生成式软件工程
AI 工程 / CHAPTER 3

软件仓库管理

Git、分支协作与 AI 时代可追踪的软件仓库管理。

#生成式软件工程#Git

整理自个人笔记仓库 · 查看原始笔记 ↗

概述

主要讲解软件仓库管理软件在开发过程中的作用,特别是使用Agent后。
软件仓库是软件工程的“可追踪历史 + 协作边界 + 项目上下文”
讲解了 Git 如何和最佳实践,鼓励学生深入去理解 git 原理。
并提出了思考,如果 Agent 能力快了1000倍,怎么解决项目管理问题。

软件仓库

  • 源代码
  • 文档
  • 配置
  • 测试
  • 构建脚本
  • 自动化流程( CL/CD )

Git

记录软件项目在不同时间点的状态 每个 Commit 对应历史中的一个确定状态 让历史可检验,备份与恢复,一个 change 对应一个意图 避免 AI-native 导致的一团混沌,现在还没有无限大能力模型

Git 的不同区域

  • 工作区
  • 暂存区
  • 本地仓库

多分支开发

解决多人或者多个任务同时开发的问题。

Merge 和 Rebase

  • Merge 保留真实分支历史,操作安全,团队协作容易理解
  • Rebase 把 feature的提交移动到最新的main之后
    • 会重写Commit历史
  • 常见规则
    • 自己的本地分支 -> 可以 rebase
    • 已经共享出去的公共历史 -> 谨慎 rebase
  • cherry-pick
    • 把另一分支上的某一个(或几个)提交,单独复制到当前分支

远程仓库

仓库文档同样重要

可以告诉AI,项目是什么,怎么构建,代码在哪里,架构是什么,有哪些约束,如何测试

AI时代的软件仓库

程序员 -> Promt/Issue -> AI Agent -> Repository -> 读取 Context -> 修改代码 -> git diff -> Test -> Commit/PR -> Human Review