glosarium
apa itu git worktree?
TL;DR
Git worktree adalah salinan kerja kedua dari repository-mu, di branch sendiri dan di folder sendiri, yang berbagi riwayat yang sama. Ia memungkinkanmu mengerjakan dua branch sekaligus tanpa stash atau berganti branch. Untuk agent AI, inilah yang membuat menjalankan beberapa agent secara paralel jadi aman, karena masing-masing mengedit file-nya sendiri. Pane membuat worktree untuk setiap pane, mengisinya dengan .env dan pengaturanmu, dan menghapusnya saat kamu mengarsipkan pane.
Git worktree adalah salinan kerja kedua dari repository-mu, di folder sendiri dan di branch sendiri. Ia berbagi riwayat git yang sama dengan checkout utamamu, jadi cepat dibuat dan hanya memakan sedikit ruang disk tambahan. Kamu bisa membuka sebanyak yang kamu mau sekaligus.
masalah yang diselesaikan worktree
Satu folder hanya bisa men-checkout satu branch. Worktree menambahkan folder lain dengan branch lain.
Biasanya sebuah repo adalah satu folder dengan satu branch yang di-checkout. Untuk mengerjakan dua hal sekaligus, kamu men-stash perubahan, berganti branch, mengerjakan hal lain, kembali, lalu unstash. Bisa, tetapi lambat dan mudah salah.
Worktree memberimu folder kedua yang sudah berada di branch lain. Fitur A ada di satu folder dan fitur B di folder lain, keduanya terbuka bersamaan, tanpa stash atau berganti branch.
kenapa ini penting untuk agent ai
Worktree-lah yang membuat menjalankan beberapa agent di satu repo jadi aman.
Dua agent AI di folder yang sama akan saling menimpa. Agent A mengedit auth.ts, agent B mengedit auth.ts semenit kemudian, dan yang menyimpan terakhir yang menang. Pekerjaan agent lain hilang, dan tak satu pun dari mereka tahu.
Dengan satu worktree masing-masing, setiap agent punya folder, branch, dan file sendiri. Keduanya bisa mengedit auth.ts pada saat yang sama tanpa menyentuh salinan milik yang lain. Saat selesai, kamu me-review dan me-merge setiap branch secara terpisah.
tampilannya di disk
Riwayat sama, file terpisah. Lokasi foldernya terserah kamu atau alatmu.
my-project/ ← your main checkout (main)
my-project/worktrees/
├─ add-auth/ ← worktree, branch add-auth
└─ fix-nav/ ← worktree, branch fix-navSetiap worktree berbagi riwayat git yang sama, jadi commit yang dibuat di satu worktree terlihat dari yang lain. Edit yang belum di-commit tetap di foldernya sendiri. Git sendiri tak peduli di mana worktree berada: di sebelah repo, di folder terpisah, atau di dalamnya seperti yang dilakukan Pane.
cara pane mengotomatiskannya
Pane membuat, mengisi, dan membersihkan worktree untuk setiap pane, jadi kamu tak pernah mengetik perintahnya.
Kamu tak perlu menjalankan perintah git apa pun. Saat kamu membuat pane, Pane:
- Mengambil worktree yang sudah disiapkannya lebih dulu untuk proyek dan branch itu, jadi pane terbuka hampir seketika, lalu memberinya branch baru.
- Menyalin file .env, pengaturan agent seperti .claude dan .codex, dan node_modules ke dalamnya, jadi agent bisa langsung mulai. Kamu bisa mengubah daftarnya di Settings.
- Saat kamu mengarsipkan pane, Pane memeriksa pekerjaan yang belum di-commit, belum dilacak, atau belum di-push, lalu menghapus worktree-nya. Kamu bisa memulihkan pane yang diarsipkan nanti.
cara manual
Tiga perintah untuk membuat dan memulai, dan dua untuk membersihkan.
Tanpa alat, hal yang sama butuh beberapa perintah git:
echo "worktrees/" >> .git/info/exclude # once: keep them out of git status
git worktree add worktrees/add-auth -b add-auth
cd worktrees/add-auth
claude # start your agent here
# once the branch is merged:
git worktree remove worktrees/add-auth
git branch -d add-authJangan lupa menghapus worktree dan branch-nya setelah di-merge. Kebanyakan orang lupa, itu sebabnya alat mengotomatiskannya.
dokumentasi terkait
- → Pane & Worktree: cara Pane mengelola worktree
- → Menjalankan Agent secara Paralel: workflow paralel lengkap
- → Monorepo: worktree dalam penyiapan monorepo
- → Git Worktree untuk Agent AI: ringkasan halaman utama
Sumber
- Koreksi
- Jika ada yang salah atau sudah usang di sini, beri tahu kami dan kami akan memperbaikinya serta memperbarui tanggal di bagian atas. Buka issue di GitHub
- Sumber
pertanyaan yang sering diajukan
Oleh Parsa Khazaeepoul, salah satu pendiri Pane. .