Skip to content

daybreaker42/flutter_worktree_manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flutter Worktree Manager (ftree)

A powerful CLI tool to manage Git Worktrees in Flutter projects. It automatically handles non-git-tracked files (like .env, google-services.json, secrets) and initializes your environment in one command.

Why ftree?

Standard git worktree is great, but for Flutter developers, it has a major drawback: It doesn't copy ignored files. Every time you create a new worktree, you have to manually copy your .env files, Firebase configs, and run pub get.

ftree automates this entire process:

  1. Creates a git worktree.
  2. Copies your specified secret/config files.
  3. Runs flutter pub get.
  4. Runs build_runner build (optional/automatic).

How to Use

After installing flutter_worktree_manager, you should make a configuration file named worktree_config.yaml in the root of your Flutter project. This file specifies which files to copy and where to create the worktrees.

Here is an example worktree_config.yaml:

# The parent directory where worktrees will be created
base_dir: "../my_worktrees"

# Files to copy from the current project to the new worktree
copy_files:
  - ".env"
  - "android/app/google-services.json"
  - "ios/Runner/GoogleService-Info.plist"
  - "lib/firebase_options.dart"

To create a new worktree, run:

ftree <branch-name>

When you want to remove a worktree, use:

ftree --remove <branch-name>

To see help message, run:

ftree --help

Installation

You can install ftree globally using the following command:

dart pub global activate flutter_worktree_manager

Make sure your PATH is set up to include the Dart SDK's bin directory to run ftree from anywhere.

Alternatively, you can add it to your dev_dependencies:

dev_dependencies:
  flutter_worktree_manager: ^0.1.0

Then run it using:

ftree <branch-name>

Or via dart run:

dart run flutter_worktree_manager <branch-name>

Credits

This package depends on the following excellent libraries:

About

A CLI tool for Flutter developers to manage Git Worktrees with automatic config copying (secrets, .env) and environment setup.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages