<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Git Worktree on Dev TLDRLSS</title>
        <link>https://dev.tldrlss.com/id/tags/git-worktree/</link>
        <description>Recent content in Git Worktree on Dev TLDRLSS</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>id</language>
        <lastBuildDate>Sat, 08 Aug 2026 08:29:00 +0800</lastBuildDate><atom:link href="https://dev.tldrlss.com/id/tags/git-worktree/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Mengapa harus git stash setiap kali ganti cabang? Apa itu Git Worktree? Perbedaan antara Git Worktree dan Git Branch? Cara menggunakan Git Worktree untuk membuat alur kerja multi-thread yang efisien</title>
        <link>https://dev.tldrlss.com/id/article/2026/08/git-worktrees-branch-guide-multi-thread-workflow/</link>
        <pubDate>Sat, 08 Aug 2026 08:29:00 +0800</pubDate>
        
        <guid>https://dev.tldrlss.com/id/article/2026/08/git-worktrees-branch-guide-multi-thread-workflow/</guid>
        <description>&lt;img src="https://dev.tldrlss.com/global-assets/images/app/git-1.jpg" alt="Featured image of post Mengapa harus git stash setiap kali ganti cabang? Apa itu Git Worktree? Perbedaan antara Git Worktree dan Git Branch? Cara menggunakan Git Worktree untuk membuat alur kerja multi-thread yang efisien" /&gt;&lt;p&gt;Pernahkah Anda mengalami situasi seperti ini? Anda sedang mengikis atau mengembangkan fitur baru yang rumit ketika mendadak menerima Bug darurat yang harus segera diperbaiki.&lt;/p&gt;
&lt;p&gt;Demi berpindah cabang (branch), Anda terpaksa menjalankan &lt;code&gt;git stash&lt;/code&gt; untuk menyembunyikan kode yang chưa selesai. Setelah memperbaiki Bug dan kembali lagi, Anda harus berhati-hati menjalankan &lt;code&gt;git stash pop&lt;/code&gt;, yang terkadang memicu mimpi buruk konflik kode (conflict).&lt;/p&gt;
&lt;p&gt;Sebenarnya &lt;code&gt;Git&lt;/code&gt; sudah sejak lama menyediakan alat yang sangat tangguh untuk mengatasi titik masalah ini, yaitu &lt;code&gt;Git Worktree&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Katakan selamat tinggal pada pergantian cabang dan Stash yang kacau, mulailah pengembangan multi-thread dengan Worktree&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Artikel ini akan mengajak Anda memahami mekanisme inti serta penggunaan praktisnya dalam dunia nyata.&lt;/p&gt;
&lt;h2 id=&#34;apa-perbedaan-antara-git-worktree-dan-git-branch&#34;&gt;Apa Perbedaan antara Git Worktree dan Git Branch?
&lt;/h2&gt;&lt;p&gt;Untuk memahami &lt;code&gt;Git Worktree&lt;/code&gt;, pertama-tama mari kita perjelas perbedaannya dengan &lt;code&gt;Git Branch&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Kita bisa mengumpamakan kontrol versi seperti sedang membaca buku fisik:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Commit&lt;/code&gt; adalah &lt;strong&gt;edisi/versi dari buku&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Branch&lt;/code&gt; adalah &lt;strong&gt;pembatas buku yang diselipkan pada halaman tertentu&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Worktree&lt;/code&gt; adalah &lt;strong&gt;meja kerja tempat Anda membentangkan buku&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dalam metode tradisional, kita hanya memiliki satu meja kerja. Setiap kali ingin mengganti pembatas buku, kita harus membereskan semua kertas yang sedang diubah di atas meja atau menyembunyikannya di dalam laci (yaitu &lt;code&gt;git stash&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Sementara itu, &lt;code&gt;Git Worktree&lt;/code&gt; memungkinkan Anda memiliki beberapa &lt;strong&gt;meja kerja mandiri&lt;/strong&gt; secara bersamaan.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Item Perbandingan&lt;/th&gt;
          &lt;th&gt;Git Branch&lt;/th&gt;
          &lt;th&gt;Git Worktree&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Konsep Workspace&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Berbagi satu direktori kerja fisik&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Memiliki beberapa direktori kerja fisik mandiri&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Biaya Pergantian&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Memerlukan commit, stash, atau menyimpan perubahan&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Tanpa stash, cukup berpindah direktori saja&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Isolasi &amp;amp; Keamanan&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Berkas belum dicommit dapat memicu konflik atau sisa berkas&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Direktori terisolasi penuh, perubahan tidak saling mengganggu&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Riwayat Aktivitas&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Berbagi riwayat Commit Git dan Branch&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Berbagi riwayat Commit Git dan Branch&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Branch aktif, Staging Area, dan perubahan belum dicommit pada setiap Worktree bersifat mandiri sepenuhnya, namun mereka &lt;strong&gt;berbagi seluruh riwayat Commit dan catatan Branch&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Branch adalah pembatas buku versi, sedangkan Worktree adalah meja kerja fisik&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dengan demikian, ketika Anda perlu berpindah tugas, Anda cukup membuka folder direktori lain tanpa mengganggu status pengembangan yang sedang berjalan sedikit pun.&lt;/p&gt;
&lt;!--adsense--&gt;
&lt;h2 id=&#34;bagaimana-cara-memulai-menggunakan-git-worktree&#34;&gt;Bagaimana Cara Memulai Menggunakan Git Worktree?
&lt;/h2&gt;&lt;p&gt;Saat menerapkan &lt;code&gt;Git Worktree&lt;/code&gt; pada proyek nyata, perencanaan direktori yang baik akan membuat pengembangan berjalan lebih lancar.&lt;/p&gt;
&lt;p&gt;Disarankan untuk menjaga direktori proyek hasil &lt;code&gt;git clone&lt;/code&gt; awal sebagai markas &lt;code&gt;main&lt;/code&gt; yang bersih, dan menempatkan direktori Worktree yang baru dibuat di luar proyek utama (misalnya &lt;code&gt;../my-app-worktrees&lt;/code&gt;), untuk menghindari kesalahan pemindaian direktori secara rekursif oleh alat pengembang.&lt;/p&gt;
&lt;p&gt;Alur perintah yang sering digunakan adalah sebagai berikut:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Alur&lt;/th&gt;
          &lt;th&gt;Perintah&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1. Membuat Worktree baru sekaligus membuat cabang baru&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;git worktree add ../my-app-worktrees/feature-login -b feature-login&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2. Melihat seluruh daftar Worktree saat ini&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;git worktree list&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;Git Worktree&lt;/code&gt; sangat cocok digunakan untuk mengelola tugas pengembangan &lt;code&gt;AI Agent&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Anda dapat memberikan direktori Worktree terpisah kepada &lt;code&gt;AI Agent&lt;/code&gt; agar ia bebas mengubah dan menguji kode, sementara pengembang manusia melakukan peninjauan kode (Review) dan pengujian di Worktree lainnya.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Berikan Worktree mandiri kepada AI Agent agar pengembangan AI dan peninjauan manusia dapat berjalan secara paralel&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Keduanya beroperasi di direktori fisik masing-masing, terjamin aman dan jelas.&lt;/p&gt;
&lt;h2 id=&#34;bagaimana-cara-menggabungkan-dan-membersihkan-secara-aman-setelah-selesai-pengembangan&#34;&gt;Bagaimana Cara Menggabungkan dan Membersihkan Secara Aman Setelah Selesai Pengembangan?
&lt;/h2&gt;&lt;p&gt;Setelah Anda menyelesaikan pengembangan di Worktree mandiri, bagaimana cara menggabungkan hasil kerja dan melakukan pembersihan?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ingatlah satu konsep penting: Direktori Worktree itu sendiri tidak perlu digabungkan, &lt;strong&gt;yang benar-benar perlu digabungkan adalah Branch&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Anda hanya perlu kembali ke direktori meja kerja &lt;code&gt;main&lt;/code&gt; dan menjalankan perintah &lt;code&gt;git merge&lt;/code&gt; terhadap cabang fitur yang bersangkutan untuk menyelesaikan integrasi.&lt;/p&gt;
&lt;p&gt;Saat pembersihan, ikuti alur standar dua langkah berikut:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Langkah&lt;/th&gt;
          &lt;th&gt;Perintah&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1. Menghapus direktori fisik Worktree&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;git worktree remove ../my-app-worktrees/feature-login&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2. Menghapus cabang fitur yang telah selesai&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;git branch -d feature-login&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hapus direktori Worktree terlebih dahulu, baru kemudian hapus Branch&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pastikan untuk selalu menggunakan perintah &lt;code&gt;git worktree remove&lt;/code&gt; untuk melakukan pembersihan, bukan menghapus folder secara manual dari file manager.&lt;/p&gt;
&lt;!--adsense--&gt;
&lt;h2 id=&#34;apa-saja-jebakan-umum-saat-menggunakan-git-worktree&#34;&gt;Apa Saja Jebakan Umum Saat Menggunakan Git Worktree?
&lt;/h2&gt;&lt;p&gt;Meskipun &lt;code&gt;Git Worktree&lt;/code&gt; sangat praktis, ada beberapa hal yang perlu diwaspadai agar tidak terjadi kesalahan.&lt;/p&gt;
&lt;h3 id=&#34;jebakan-1-perubahan-yang-belum-dicommit-akan-hilang&#34;&gt;Jebakan 1: Perubahan yang belum dicommit akan hilang
&lt;/h3&gt;&lt;p&gt;Meskipun menghapus Worktree tidak menghapus Branch itu sendiri, jika Anda masih memiliki perubahan yang belum dicommit di direktori tersebut, menghapus direktori Worktree secara paksa akan membuat perubahan itu hilang selamanya.&lt;/p&gt;
&lt;h3 id=&#34;jebakan-2-konflik-pendudukan-cabang&#34;&gt;Jebakan 2: Konflik pendudukan cabang
&lt;/h3&gt;&lt;p&gt;Mekanisme perlindungan &lt;code&gt;Git&lt;/code&gt; &lt;strong&gt;tidak mengizinkan Branch yang sama di-Checkout secara bersamaan di dua Worktree yang berbeda&lt;/strong&gt;. Jika Anda mencoba beralih ke cabang yang sedang digunakan di Worktree kedua, &lt;code&gt;Git&lt;/code&gt; akan langsung memblokir dan menampilkan pesan kesalahan.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Menghapus Worktree secara paksa akan menghilangkan perubahan yang belum di-Commit&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dengan menguasai karakteristik dan prinsip ini, Anda dapat terhindar dari jebakan tersebut.&lt;/p&gt;
&lt;h2 id=&#34;kesimpulan&#34;&gt;Kesimpulan
&lt;/h2&gt;&lt;p&gt;Melalui &lt;code&gt;Git Worktree&lt;/code&gt;, kita dapat sepenuhnya meninggalkan pergantian cabang yang rumit dan proses &lt;code&gt;git stash&lt;/code&gt;, serta mewujudkan pengembangan multi-thread sejati.&lt;/p&gt;
&lt;p&gt;Lain kali ketika menghadapi Bug darurat, mengerjakan banyak fitur bersamaan, atau memberikan tugas pengkodean kepada &lt;code&gt;AI Agent&lt;/code&gt;, cobalah membuka meja kerja yang baru!&lt;/p&gt;
&lt;!--adsense--&gt;
&lt;h2 id=&#34;reference&#34;&gt;Reference
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://git-scm.com/docs/git-worktree&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Git - git-worktree Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
