Satu folder, dua agent: kerjaan jadi campur

Akmal Syarifuddin 3 menit membaca - -
git worktree ai-agent workflow pengalaman

Dulu satu folder repo sudah cukup.

Punya branch feat/x, checkout, kerja, commit, balik ke main. Kotor? Stash. Bentrok? Selesaiin dulu. Satu orang, satu tree, selesai.

Sekarang agent ikut nulis. Git-nya nggak berubah — branch tetap branch. Yang beda: di jam yang sama bisa ada lebih dari satu “tangan” nyentuh file.

Logo Git

Logo Git


Branch itu garis kerja

git branch + checkout masih cara biasa memisah apa yang dikerjakan.

  • main bersih
  • fix/login buat bug
  • feat/export buat fitur

Itu soal commit ke mana, PR dari mana, merge ke mana.

Visualisasi git branch: satu folder, ganti branch = ganti isi file

Satu folder — pindah branch berarti isi tree diganti

Yang sering kelewat: di satu clone biasa, cuma satu branch yang “hidup” di folder itu. Checkout = isi working tree diganti.

Agent lagi nulis di src/, saya tiba-tiba pindah branch — kacau. Atau sebaliknya: saya kira folder masih buat tugas A, ternyata agent sudah ubah setengah tree buat tugas B.

Branch memisah sejarah. Dia nggak otomatis memisah ruang kerja.


Worktree: folder lain, repo yang sama

git worktree nambah checkout di path terpisah. Satu repo, beberapa working directory. Tiap folder bisa duduk di branch berbeda tanpa saling timpa file.

Visualisasi git worktree: satu .git, beberapa folder checkout paralel

Satu .git — banyak folder, checkout bisa jalan bareng

Kurang lebih:

# repo utama tetap di ~/proj (mis. main)
git worktree add ../proj-fix-login fix/login
git worktree add ../proj-feat-export -b feat/export main

Jadi:

  • ~/proj — saya, atau agent A
  • ~/proj-fix-login — agent B
  • ~/proj-feat-export — agent C

Masih satu remote. Beda folder, beda dirty state. node_modules / build bisa beda per tree kalau di-install masing-masing.

Intinya buat saya: ganti tugas nggak harus menggeser isi folder yang lagi dipakai orang (atau agent) lain.


Kenapa baru kerasa belakangan

Waktu kerja masih manusia satu-satu, checkout + stash sudah oke. Agent beda ceritanya.

Sering jalan bareng — dua chat, cloud agent, atau agent + saya. Satu sesi bisa lama: banyak file, test jalan. Agent juga “percaya” folder yang dibuka itu miliknya. Diganti di balik layar, hasilnya campur.

Review juga lebih enak dari worktree yang isinya satu garis kerja, bukan tree yang sudah dicampur tiga eksperimen.

Branch tetap ada di tiap worktree. Bedanya: saya nggak harus “usir” pekerjaan lain dari disk cuma mau coba jalur kedua.


Kapan branch saja sudah cukup

Satu tugas, satu sesi, berurutan. Agent singkat: ubah kecil, commit, selesai. Atau saya memang nyaman stash / commit WIP sebelum pindah.

Kalau ritmenya masih linear, worktree cuma bikin ribet: folder ekstra, install ekstra, terus nanya “eh aku di folder mana?”


Kapan saya mulai pakai worktree

Agent A ngerjain fitur, saya (atau agent lain) perlu hotfix di branch lain. Eksperimen berisiko — refactor besar, upgrade dependency — tanpa ganggu tree harian. Beberapa agent Cursor / cloud, masing-masing diarahkan ke path sendiri. Atau perubahan lama “menginap” di folder, sementara saya balik ke main yang bersih.

Mental model saya sederhana: satu worktree ≈ satu konteks agent / satu PR aktif. Branch di dalamnya tetap nama yang akan di-push.


Yang sering bikin jebakan

Tiap tree bisa butuh npm install / build sendiri — monorepo langsung kerasa. Satu branch juga nggak bisa di-checkout di dua worktree sekaligus; biasa, buat branch baru atau selesaiin yang lama.

Salah folder itu sumber bug paling sering: terminal, editor, agent — cwd-nya harus sama. Setelah merge, git worktree remove; jangan numpuk folder zombie.

Dan worktree nggak menggantikan disiplin. Commit kecil, pesan jelas, PR sempit. Folder paralel nggak menyelamatkan PR yang campur aduk.


Bukan “ganti branch dengan worktree”

Branch tetap buat sejarah dan PR. Worktree buat folder di disk supaya nggak rebutan.

Yang berubah di era agent: frekuensinya. Lebih sering ada lebih dari satu “pekerja” nyentuh repo, jadi lebih sering butuh lebih dari satu working tree.

Kalau agent masih satu-satu dan berurutan, branch saja. Kalau sudah sering tabrakan di folder yang sama — coba git worktree add.

Komentar & Diskusi

Memuat komentar...