how-to-manage-multiple-flutter-versions-with-git-worktrees-and-z について
複数のSDKチャンネルをプロジェクトごとに使い分けたいFlutter開発者向けのガイドです。Git worktreeとZSHエイリアスを使い、FVMに頼らずチャンネル別のディレクトリを管理します。
主な機能
- 01Flutterチャンネルごとにworktreeを作成
- 02devのチェックアウトを別に保持
- 03チャンネル別のZSHエイリアスを設定
- 04Gitで各チャンネルを更新
活用シーン
- 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 Worktree と ZSH で複数の Flutter バージョンを管理する方法
Flutter をしばらく使っていると、複数のプロジェクトで複数の Flutter バージョンを使う必要が出てきたことがあるでしょう。
以前は、JS の世界における NVM(Node Version Manager)に似た FVM(Flutter Version Management)を使っていました。
Git のみに依存するソリューションが欲しかったため、Flutter のチャンネルを管理するのに worktree を使い始めました。
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
master ブランチ用の worktree を作成できるように、dev チャンネルをチェックアウトする必要があります。これにより flutter ディレクトリを分けておけるため、PR に取り組んだり、ローカルの変更を適用したりできます。
これを実行すると、flutter、flutter-master、flutter-beta、flutter-stable の 4 つのディレクトリが作成されます。
各チャンネルの ZSH エイリアスを追加する
次に、ZSH のエイリアスを使って、各 SDK を必要に応じて参照する方法を用意します。以下を ~/.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
任意のチャンネルを更新するには、そのチャンネルの worktree ディレクトリに移動して、ほかの Git リポジトリと同じように変更を pull します。
cd ~/Developer/flutter-master
git checkout origin/master
Git worktree は、変更を stash する代わりに、複数のブランチを別々のフォルダーとしてチェックアウトする方法です。