关于 how-to-manage-multiple-flutter-versions-with-git-worktrees-and-z
面向需要在不同项目间使用多个 SDK 通道的 Flutter 开发者。本指南用 Git worktree 和 ZSH 别名将各通道放在独立目录,无需依赖 FVM。
主要功能
- 01为 Flutter 通道创建 worktree
- 02单独保留 dev 检出目录
- 03添加各通道的 ZSH 别名
- 04通过 Git 更新各通道
适用场景
- 01在项目间切换 Flutter 通道
- 02保留本地修改并处理 Flutter PR
- 03独立更新某个通道的检出目录
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rodydavis/ skills --skill how-to-manage-multiple-flutter-versions-with-git-worktrees-and-z安装后在 Claude Code 中输入/how-to-manage-multiple-flutter-versions-with-git-worktrees-and-z确认已加载。
详细介绍
如何使用 Git 工作树和 ZSH 管理多个 Flutter 版本
如果你使用 Flutter 已有一段时间,很可能需要在多个项目中使用多个 Flutter 版本。
过去我使用 FVM(Flutter 版本管理),它类似于 JS 领域中的 NVM(Node 版本管理器)。
我想要一个只依赖 Git 的解决方案,于是开始使用 工作树来管理 Flutter 渠道。
下载 SDK
在一个已知目录中检出 Flutter 仓库,在此例中,我会将它下载到 ~/Developer/:
git clone https://github.com/flutter/flutter ~/Developer/flutter
添加 Flutter 渠道
现在,我们可以添加要跟踪的分支:
cd ~/Developer/flutter
git checkout origin/dev
git worktree add ../flutter-stable stable
git worktree add ../flutter-beta beta
git worktree add ../flutter-master master
我们需要检出 dev 渠道,以便为 master 分支创建工作树。这样会将 flutter 目录单独保留,让我们可以处理 PR 并应用本地更改。
运行后,我们应该会有 4 个目录:flutter、flutter-master、flutter-beta 和 flutter-stable。
为每个渠道添加 ZSH 别名
现在,我们需要一种方法,随时引用每个 SDK,使用 ZSH 别名即可。将以下内容添加到 ~/.zshrc:
alias flutter-master='~/Developer/flutter-master/bin/flutter'
alias dart-master='~/Developer/flutter-master/bin/dart'
alias flutter-beta='~/Developer/flutter-beta/bin/flutter'
alias dart-beta='~/Developer/flutter-beta/bin/dart'
alias flutter-stable='~/Developer/flutter-stable/bin/flutter'
alias dart-stable='~/Developer/flutter-stable/bin/dart'
总结
重新打开终端后,你可以运行以下命令来验证其是否正常工作(也可以添加上文中添加的任意渠道):
flutter-master doctor
dart-master --version
flutter-stable doctor
dart-stable --version
你可以通过进入对应渠道的工作树目录并像更新其他 Git 仓库一样拉取更改,来更新任意渠道。
cd ~/Developer/flutter-master
git checkout origin/master
Git 工作树只是一种将多个分支检出到不同文件夹的方法,无需暂存更改。
评论
支持 Markdown