Git 版本控制
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/version-control。
技能介绍
这个技能解决什么问题
在多人协作的代码库里,AI 代理往往只会执行单条命令,很少先判断仓库状态再动手。结果是提交历史被拆成一堆 fix、wip,分支列表堆满合并后没人清理的 feat/tmp-test,冲突文件里还留着编辑器生成的多余标记。更麻烦的是,代理可能在 detached HEAD 下直接提交,或者用 git reset --hard 覆盖同事刚推的工作。
Git 版本控制 技能把 Git 操作从「会执行命令」升级为「按工程规范做版本管理」,适用于日常工作流和团队级协作场景。
核心能力与工作方式
- 先评估仓库状态:在执行任何破坏性操作前,先跑
git status、git log --oneline -10和git branch -a,确认当前分支、未提交改动、近期历史和可用远程。上下文不清时不会贸然提交或推送。 - 原子提交与提交规范:把相关改动归入一次提交,标题不超过 50 字符;非平凡改动补一段正文说明原因与影响。如果项目已有 Conventional Commits 或 Angular 风格约定,会沿用而不是另起炉灶。
- 分支策略:从正确的基线切出
feat/、fix/、release/分支,合并完成后删除陈旧分支,保持分支列表干净。支持 GitFlow、GitHub Flow 和 trunk-based development。 - 远程同步与冲突处理:首次推送用
git push -u建立追踪;合并前把基线分支并入特性分支,让冲突在隔离环境中提前暴露。遇到冲突时会先阅读双方改动,选出正确结果(或合并两者),git add标记解决,再跑测试确认。 - 自动化与质量门禁:配置
pre-commit、commit-msg、pre-push钩子配合 Husky、pre-commit、Lefthook;完善.gitignore覆盖构建产物、环境文件与系统元数据;串联 CI 在每次推送时强制执行质量检查。 - 安全护栏:执行
reset --hard、push --force、rebase等改写历史的操作前,代理会先验证状态并与你确认。
适用边界与注意点
- 大文件不适合直接入库:图片、模型权重、视频应走 Git LFS,并添加对应的 tracking rules。
- 浅克隆历史操作受限:
--depth 1克隆下blame、log、bisect可能报错,需要先git fetch --unshallow。 - 子模块与 monorepo:子模块项目要确保
git submodule update --init --recursive在初始化流程里;monorepo 提交时需尊重各包的改动边界。 - 密钥泄漏防护:首次提交前就把
.env、凭据和私钥写进.gitignore,可配合git-secrets或trufflehog扫描。 - 强制推送共享分支:团队协作中应使用
--force-with-lease,并先与成员确认,避免覆盖他人工作。 - 发布可追溯:生产发布打附注标签
git tag -a v1.2.0 -m "Release 1.2.0",部署代码即可回溯到具体 commit。
使用场景
- 多人协作仓库中,main分支与功能分支同时修改同一文件导致合并冲突,需要检查冲突、选择正确方案并完成合并
- 团队引入新模块,需要从main切出feat分支,按约定式提交规范分步提交相关改动
- 项目首次加入Git管理,需要配置.gitignore排除构建产物和环境文件,并初始化仓库结构
- 共享分支被同事强制推送后本地历史分叉,需要在确认无本地工作丢失后与远程同步
适合人员
- 需要在团队仓库中处理合并冲突、遵循分支策略的后端开发工程师
- 负责配置Git钩子和CI流水线、保障提交质量的DevOps工程师
- 希望AI代理能安全执行Git操作、避免破坏历史的全栈开发者
- 管理团队代码审查流程、需要标准化提交规范的技术负责人