版本控制集成
配合 Git 及其他版本控制系统工作
Verdent for VS Code 与 Git 及其他版本控制系统无缝集成,支持自然语言版本控制操作、自动生成提交信息以及智能分支管理。本指南将展示如何利用 Verdent 的 Git 集成来实现高效的版本控制工作流。
生成有意义的提交信息
假设你已经做了修改,并希望 Verdent 生成一条描述性的提交信息。
请求提交并生成提交信息
Stage all changes and create a commit with an appropriate messageVerdent 使用 git diff 分析你的修改。
Verdent 分析修改
Verdent 会检查:
- 修改的文件及其用途
- 修改的性质(新功能、缺陷修复、重构)
- 影响范围
- 相关功能
生成描述性提交信息
git commit -m "feat: add user profile image upload with S3 integration
- Add file upload endpoint to user API
- Integrate AWS S3 for image storage
- Update user model with profileImage field
- Add frontend image upload component with preview"提交信息遵循约定式提交格式,并描述修改了什么内容。
创建提交
修改将以生成的提交信息进行提交。你可以查看该提交:
git log -1提示:
- Verdent 遵循约定式提交格式(feat、fix、refactor、docs 等)
- 提交信息侧重于"做了什么"和"为什么",而非"怎么做"
- 你可以在用户规则或项目规则中自定义提交信息格式
- 请求特定的提交信息风格:"创建一个带有详细多行信息的提交"
自定义提交信息格式
假设你希望 Verdent 遵循你团队特定的提交信息约定。
在 VERDENT.md 中为所有项目定义提交信息偏好:
# VERDENT.md
## Git Commit Messages
When generating commit messages:
- Always include ticket number in format: [PROJ-123]
- Use present tense verbs
- Maximum 50 characters for first line
- Include detailed explanation in body
- Add "Co-authored-by" for pair programming sessions
Example format:
[PROJ-123] Add user authentication feature
Detailed explanation of changes...
Co-authored-by: Team Member <email@example.com>Verdent 会在全局范围内遵循这些规则。
在 AGENTS.md 中定义项目特定的提交约定:
# AGENTS.md
## Git Commit Conventions
For this project, use conventional commits with these scopes:
- feat(api): API changes
- feat(ui): Frontend changes
- fix(auth): Authentication fixes
- docs(readme): Documentation updates
Always reference GitHub issue: "Fixes #123" or "Relates to #456"这些规则仅适用于该项目。
直接提供一次性指令:
Create a commit with message format: "[TICKET-NUMBER] description" including reference to issue #42Verdent 生成:
git commit -m "[PROJ-42] Add search functionality
Relates to #42"提示:
- 用户规则在所有项目中全局生效
- 项目规则(AGENTS.md)会针对特定项目覆盖用户规则
- 内联指令会覆盖两者,用于一次性需求
- 推荐使用约定式提交格式以保持一致性
创建拉取请求
假设你希望 Verdent 创建一个完整的拉取请求。
确保修改已提交
Make sure all my changes are committedVerdent 会检查 git status 并提交任何未提交的修改。
将分支推送到远程
Push this branch to originVerdent 推送:
git push origin feature/user-notifications请求创建 PR
Create a pull request for this featureVerdent 使用 gh CLI 来创建 PR。
Verdent 生成 PR 描述
Verdent 分析提交和修改来生成:
标题: Add user notification system
正文:
## Summary
- Implements real-time user notifications
- Adds WebSocket support for instant delivery
- Includes email fallback for offline users
- Comprehensive test coverage
## Test Plan
- [ ] Test real-time notifications in browser
- [ ] Verify email fallback for offline users
- [ ] Check notification persistence across sessions
- [ ] Test with multiple concurrent users
## Changes
- Added NotificationService with WebSocket integration
- Created notification UI components
- Integrated SendGrid for email notifications
- Added notification preferences to user settingsPR 将以完整的描述创建。
提示:
- Verdent 会分析分支中的所有提交来生成 PR 描述
- 请求特定的 PR 格式:"创建一个带有详细测试计划的 PR"
- 包含截图:"将此截图添加到 PR 描述中"
- 你可以在创建前完善 PR 描述:"更新 PR 以提及这个破坏性变更"
解决合并冲突
假设你遇到了合并冲突,需要 Verdent 帮助解决。
尝试合并
Merge main into this feature branch出现合并冲突:
Auto-merging src/auth.ts
CONFLICT (content): Merge conflict in src/auth.ts请求解决冲突
Help me resolve the merge conflict in src/auth.tsVerdent 读取冲突标记。
Verdent 分析两个版本
Verdent 会检查:
- 当前分支的修改(HEAD)
- 传入的修改(main 分支)
- 冲突周围的上下文
- 两处修改的意图
Verdent 提出解决方案
The conflict is between your JWT implementation and the main branch's session-based auth. I'll merge both approaches to support both authentication methods.Verdent 通过智能整合两处修改来解决冲突。
将冲突标记为已解决
git add src/auth.ts
git commit -m "Merge main into feature/jwt-auth, resolved conflicts"冲突已解决,合并完成。
提示:
- Verdent 理解代码上下文,能够智能地解决冲突
- 在提交前务必检查冲突解决方案
- 对于复杂的冲突,可先让 Verdent 解释两个版本
- 解决冲突后请充分测试
Verdent 通过理解两个分支的意图来分析合并冲突,提出能够保留双方功能的解决方案。
管理分支和标签
假设你需要管理分支并创建发布标签。
创建并切换分支:
Create a new branch called feature/user-notificationsVerdent 执行:
git checkout -b feature/user-notificationsgit checkout maingit checkout -b feature/payment-integration
git push -u origin feature/payment-integration合并功能分支:
Merge the feature/user-notifications branch into mainVerdent 执行合并工作流:
git checkout main
git pull origin main
git merge feature/user-notifications
git push origin mainVerdent 会在合并前确保 main 是最新的。
创建带注释的标签:
Create an annotated tag for version 1.2.0 with release notesVerdent 创建详细标签:
git tag -a v1.2.0 -m "Release 1.2.0
New Features:
- User notification system
- Email integration
- Real-time WebSocket support
Bug Fixes:
- Fixed authentication timeout issue
- Resolved cart calculation bug"推送标签:
Push all tags to originVerdent 推送:
git push origin --tags提示:
- 使用描述性的分支名称:
feature/user-auth、fix/cart-bug、refactor/api-layer - 合并前务必拉取最新修改
- 为发布使用带注释的标签(它们包含元数据)
- 遵循语义化版本:v1.2.3(主版本.次版本.修订版本)
一致的分支命名约定有助于 Verdent 理解你的工作流。在 AGENTS.md 中定义命名模式即可自动遵循。
常见问题
Verdent 会自动提交我的修改吗?
不会。Verdent 只在你明确请求时才创建提交。你完全掌控何时提交修改。准备好后只需说"暂存所有修改并创建提交"即可。
我可以在提交前编辑提交信息吗?
可以。你可以让 Verdent 在创建提交前修改提交信息。比如说"更新提交信息以提及破坏性变更"或"让提交信息更简洁"。Verdent 会根据你的反馈重新生成信息。
Verdent 支持 GitHub、GitLab、Bitbucket 及其他 Git 平台吗?
支持。Verdent 使用标准的 Git 命令,因此可与任何 Git 仓库配合使用,无论托管平台为何。对于创建拉取请求,Verdent 使用 gh CLI,这需要 GitHub,但所有其他 Git 操作都通用。
Verdent 会未经询问就推送到远程仓库吗?
不会。Verdent 只在你明确请求时才推送到远程仓库。出于安全考虑,所有 Git 操作(提交、推送、合并、变基)都需要你明确指示。
Verdent 能解决所有类型的合并冲突吗?
Verdent 能够通过理解代码上下文和意图来解决大多数基于文本的合并冲突。二进制文件冲突或非常复杂的多方冲突可能需要手动介入。在提交前请务必检查 Verdent 的冲突解决方案。