Pernah nggak lagi asik coding fitur A, tiba-tiba ada bug urgent di production (branch main)? Opsinya biasanya dua:
* git stash (tapi sering lupa balikin atau konflik).
* Clone repo baru di folder lain (boros disk & waktu).
Sebenarnya Git punya fitur dewa bernama Worktrees, tapi perintahnya ribet banget. Phil Haack baru aja rilis solusi elegannya: tree-me.
Ini bedahannya:
1. โ ๏ธ Problem Statement (Masalah)
* The "Context Switch" Tax: Pindah branch itu mahal. Kamu harus stop server, ganti branch, install dependensi ulang, baru bisa kerja.
* Worktree Friction: Fitur git worktree memungkinkan kita punya banyak branch aktif sekaligus di folder berbeda. TAPI, perintah manualnya panjang dan rentan salah ketik (git worktree add ../path/to/folder -b new-branch main... duh ๐ซ).
* Direktori Berantakan: Tanpa konvensi, folder worktree kita bakal berceceran di mana-mana.
2. ๐ ๏ธ Metodologi & Solusi
Phil Haack membuat tree-me, sebuah skrip wrapper minimalis untuk Git.
* Opinionated Convention: Tool ini memaksa struktur folder yang rapi. Semua worktree dikumpulkan di satu tempat (misal: ~/worktrees/nama-project/nama-branch).
* Automation: Cukup satu perintah pendek untuk membuat folder, checkout branch, dan menyiapkan worktree baru.
* Auto-CD: Setelah dibuat, terminal kamu otomatis pindah ke folder baru tersebut.
3. ๐ Findings & Fitur Kunci
* โก Instan Context Switch: Kamu bisa punya 5 branch terbuka sekaligus (Main, Feature-A, Hotfix, Experiment). Gak perlu npm install ulang tiap pindah branch karena foldernya terpisah.
* โจ๏ธ Tab Completion: Mendukung autocomplete di terminal, jadi nggak perlu hafal nama branch yang panjang.
* ๐งน Clean Up: Perintah tree-me rm otomatis menghapus worktree DAN membersihkan branch git-nya sekaligus (pruning).
4. ๐ก Key Takeaways
* Worktrees > Stashing: Untuk tugas yang kompleks, isolasi folder (worktree) jauh lebih aman daripada tumpukan stash.
* Automate Friction: Jika ada perintah CLI yang sering kamu ketik tapi panjang, bungkuslah dalam script. Jangan buang waktu mengetik boilerplate.
* Focus: Dengan worktree, IDE kamu bisa tetap terbuka di Branch A, sementara terminal lain mengerjakan hotfix di Branch B.
๐ป How to Use / Install
Ini adalah bash script sederhana yang bisa kamu copas.
* Ambil Scriptnya:
Cek di repo dotfiles Phil Haack atau buat file tree-me di folder bin kamu.
* Perintah Dasar:
# Buat worktree baru dari branch main
tree-me create fix-login-bug main
# Pindah ke worktree yang sudah ada
tree-me open fix-login-bug
# Buka Pull Request dari worktree saat ini
tree-me pr
* Struktur Folder yang Terbentuk:
~/worktrees/
โโโ my-app/
โโโ main/ (Production code)
โโโ fix-bug/ (Hotfix code)
โโโ new-ui/ (Experimental code)
๐ Ambil Script & Baca Blognya:
https://haacked.com/archive/2025/11/21/tree-me/
#Git #Productivity #DevOps #SoftwareEngineering #PhilHaack #OpenSource #DeveloperTools #CodingLife #Worktrees