mcpField
H
how-to-manage-multiple-flutter-versions-with-git-worktrees-and-z

how-to-manage-multiple-flutter-versions-with-git-worktrees-and-z

github.com/rodydavis開発6040 回インストール2 週間前に更新
リポジトリ

how-to-manage-multiple-flutter-versions-with-git-worktrees-and-z について

複数のSDKチャンネルをプロジェクトごとに使い分けたいFlutter開発者向けのガイドです。Git worktreeとZSHエイリアスを使い、FVMに頼らずチャンネル別のディレクトリを管理します。

主な機能

  1. 01Flutterチャンネルごとにworktreeを作成
  2. 02devのチェックアウトを別に保持
  3. 03チャンネル別のZSHエイリアスを設定
  4. 04Gitで各チャンネルを更新

活用シーン

  1. 01プロジェクト間でFlutterチャンネルを切り替え
  2. 02ローカル変更を保ってFlutter PRに取り組む
  3. 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 する代わりに、複数のブランチを別々のフォルダーとしてチェックアウトする方法です。

コメント