在软件开发领域,提升效率一直是开发者追求的目标。最近,字节推出了一款新产品 Trae,它与 AI 深度集成,为开发者提供了智能问答、代码自动补全以及基于 Agent 的 AI 自动编程能力。本文将通过实际案例,详细介绍 Trae 的功能和使用体验。
一、Trae 的功能概述
Trae IDE 最显著的特点是与 AI 的深度结合,提供了以下四个核心功能:
- 智能问答 :开发者可以通过自然语言向 Trae 提问,获取相关的技术解答和建议。
- 实时代码建议 :在编写代码过程中,Trae 会根据上下文提供实时的代码建议,帮助开发者快速完成代码编写。
- 代码片段生成 :根据开发者的需求,Trae 可以生成特定功能的代码片段,节省开发时间。
- 从 0 到 1 开发项目 :Trae 能够协助开发者从项目初始化到完成整个开发流程,提供全方位的支持。
从 0 到 1 开发项目
二、实际应用案例:自动提交代码脚本
(一)需求描述
作者有一个需求,希望实现一个脚本,当当前文件夹内的内容有变更时,每半小时自动提交一次代码。具体要求如下:
- 适用于 Mac 系统。
- 提交命令包括:
git add .、git commit -s -m "i"、git pull origin main、git push origin main。 - 如果没有变更,则不执行提交。
- 提交信息根据当前的变更内容自动添加。
- 仅在早上 8 点到晚上 12 点之间执行。
- 如果发现有冲突,需要自动解决冲突。
(二)Trae 的解决方案
作者向 Trae 提出了上述需求,Trae 很快生成了满足需求的脚本代码
#!/bin/bash
# 解决冲突的函数
resolve_conflicts() {
if [[ $(git status --porcelain | grep "^UU") ]]; then
echo "检测到冲突文件,尝试解决..."
# 使用我们的更改解决冲突
git status --porcelain | grep "^UU" | awk '{print $2}' | while read file; do
echo "自动解决文件冲突: $file"
git checkout --ours "$file"
git add "$file"
done
# 提交解决的冲突
git commit -s -m "Resolve conflicts: Auto-merged using our changes"
return 0
fi
return 1
}
while true
do
# 获取当前小时
current_hour=$(date +%H)
# 检查是否在工作时间内(8点到24点)
if [ $current_hour -ge 8 ] && [ $current_hour -lt 24 ]; then
# 检查是否有文件变更
if [[ $(git status --porcelain) ]]; then
echo "检测到文件变更,开始提交 - $(date)"
# 先进行pull操作
echo "拉取远程更新..."
if ! git pull origin main; then
# 如果pull失败,可能是有冲突
if resolve_conflicts; then
echo "冲突已自动解决"
else
echo "Pull 失败,但没有检测到冲突,跳过本次提交"
sleep 1800
continue
fi
fi
# 获取变更摘要
changes=$(git status --porcelain | awk '{print $2}' | xargs echo)
commit_msg="Auto commit: Changed files - ${changes}"
if git add .; then
if git commit -s -m "$commit_msg"; then
# 再次pull确保没有新的更改
git pull origin main
if git push origin main; then
echo "提交成功!提交信息:$commit_msg"
else
echo "Push 失败!"
fi
else
echo "Commit 失败!"
fi
else
echo "Add 失败!"
fi
else
echo "没有检测到文件变更 - $(date)"
fi
else
echo "当前不在工作时间范围内 - $(date)"
fi
echo "等待 30 分钟后进行下一次检查..."
sleep 1800
done
(三)主要改进
Trae 生成的脚本具有以下优点:
- 添加了 git pull 操作 :在提交前先更新本地代码,确保与远程仓库保持同步。
- 增加了自动解决冲突的功能 :当检测到冲突时,能够自动解决冲突并提交。
- 使用 --ours 策略自动解决冲突 :保留本地更改,避免因冲突导致的提交失败。
- 在 push 前再次 pull :确保在推送代码时没有新的更改,避免冲突。
- 添加了更多的错误处理和状态提示 :让开发者能够清晰了解脚本的执行情况。
(四)使用方法
- 赋予脚本执行权限 :
chmod +x smart_commit.sh
- 运行脚本 :
./smart_commit.sh
- 后台运行 :
nohup ./smart_commit.sh > commit_log.txt 2>&1 &
(五)注意事项
- 脚本会自动使用本地更改来解决冲突,这可能不适用于所有情况,开发者需要根据实际情况进行调整。
- 建议在使用前先手动测试 git 操作是否正常,确保脚本能够顺利执行。
- 确保已配置好 git 的用户名、邮箱和认证信息,否则会导致提交失败。
三、Trae 的其他实用功能
(一)Chat 模式下的代码管理
在 Chat 模式下,根据开发者的需求,AI 助手会自动创建新文件或编辑已有文件并自动保存生成的代码。开发者可以接受或拒绝变更,操作方式如下:
- 复制代码 :点击 “复制” 按钮,复制代码块中的全部内容。
- 插入到光标处 :在编辑器内的文件中,点击目标区域,然后点击 “插入到光标处” 按钮,将代码块中的内容插入到文件内的光标处。
- 添加到新文件 :点击 “添加到新文件” 按钮,新建一个文件,并将代码块中的内容添加至该文件。
- 应用代码变更 :若为代码变更,则可以点击 “应用” 按钮,将变更后的代码应用至相应的文件。提示:不支持应用和当前工作空间项目无关的代码。
(二)生成并运行命令
Chat 模式下,AI 助手会提供可一键运行的 Shell 命令,开发者可以按需进行以下操作:
- 复制命令 :点击 “复制” 按钮,复制该命令。
- 添加到终端 :点击 “添加到终端” 按钮,将命令添加至未被占用的终端。
- 运行命令 :点击 “运行” 按钮,在未被占用的终端中运行该命令。
(三)管理历史对话
点击 “Chat” 窗口右上角的 “历史会话” 按钮后,左侧会显示 “历史记录” 窗口,展示 Chat 模式和 Builder 模式的所有对话记录,方便开发者随时查看和回顾。
四、总结
Trae 作为一款与 AI 深度集成的智能开发助手,为开发者提供了强大的功能支持。通过实际应用案例,我们看到了 Trae 在提升开发效率方面的显著优势。无论是自动提交代码脚本的生成,还是 Chat 模式下的代码管理和命令运行,Trae 都展现出了其智能、便捷的特点。对于开发者来说,Trae 是一个值得尝试的工具,能够帮助他们在日常开发工作中更加高效地完成任务。
五、链接
六、致谢
感谢 Trae 团队的辛勤工作,为开发者带来了这样一款优秀的工具。同时,也感谢所有为 Trae 提供反馈和支持的开发者,共同推动这款产品的不断进步。