Pengenalan GitButler CLI

GGitButler
์ปดํ“จํ„ฐ/์†Œํ”„ํŠธ์›จ์–ด์ฐฝ์—…/์Šคํƒ€ํŠธ์—…AI/๋ฏธ๋ž˜๊ธฐ์ˆ 

Transcript

00:00:00Halo semuanya. Nama saya Scott Chacone. Saya CEO Git Brother.
00:00:02Saya akan melakukan demo singkat tentang CLI Git Brother yang baru.
00:00:06Jadi, jika Anda terbiasa dengan baris perintah (command line),
00:00:08dan ingin menggunakan Git Brother secara terprogram,
00:00:11CLI Git Brother baru ini adalah alat yang sangat keren.
00:00:14Mari kita mulai. Oke, kita akan mulai dengan sebuah repositori.
00:00:18Saya punya proyek Rust kecil di sini,
00:00:20dan kita akan mencoba alur kerja dari CLI Git Brother ini.
00:00:23Alat ini pada dasarnya adalah pengganti langsung untuk Git. Setelah terinstal,
00:00:27Anda punya perintah "but". Ini akan jadi antarmuka utama Anda, bukan Git.
00:00:32Anda bisa menjalankan "but" atau "but status". Ini versi singkatnya.
00:00:35Dan ini akan menampilkan statusnya.
00:00:38Hasilnya sangat mirip dengan output dari "git status".
00:00:41Bisa kita lihat ada empat file yang dimodifikasi.
00:00:44Ada beberapa yang belum dilacak (untracked) dan beberapa yang sudah diubah.
00:00:47Ada file baru dan file modifikasi, namun pada output "but",
00:00:50statusnya hanya akan menampilkan daftar berisi empat perubahan ini.
00:00:55Ini adalah hal-hal yang telah Anda ubah. Anda bisa langsung melakukan commit,
00:00:59sesuai keinginan Anda. Jadi, kita bisa jalankan "but commit".
00:01:02Ini akan membuat branch sementara. Mari kita coba.
00:01:05Jika kita jalankan "but status" lagi, semua perubahan itu sudah ada dalam satu tempat.
00:01:11Kita juga bisa jalankan "but status -f" atau "--files".
00:01:15Ini akan menampilkan file-file yang telah dimodifikasi dalam commit ini.
00:01:18Tapi katakanlah kita tidak ingin menggabungkan semuanya ke dalam satu commit.
00:01:21Beberapa terkait Clod, satu file readme,
00:01:24dan yang lainnya adalah perubahan pada kodenya. Ini sebenarnya tiga perubahan terpisah,
00:01:28kan? Jadi kita ingin menjadikannya tiga commit terpisah. Mari kita batalkan.
00:01:31Kita bisa membatalkan commit dengan menjalankan
00:01:36uncommit. Sekarang kita kembali. Kita masih punya branch sementara di sini.
00:01:40Kita bisa menghapusnya jika mau, tapi mari kita gunakan saja.
00:01:44Saya akan menamainya ulang. Saya beri nama branch-nya "Clod stuff".
00:01:48Sekarang saya punya branch baru dan bisa melakukan staging ke sana,
00:01:53seperti "git add". Kita bisa ketik: but stage G0 dan H0.
00:01:58Ini adalah kode singkat (short code) untuk file-file tersebut.
00:02:01Anda juga bisa mengetik seluruh path file-nya jika mau,
00:02:04tapi kami mencoba membuatnya sangat mudah dan cepat. Sekarang jika saya cek,
00:02:08file-file ini sudah masuk ke branch "Clod stuff" dan saya bisa commit dengan -o,
00:02:12yang berarti hanya untuk hal-hal yang sudah di-stage. Jika saya jalankan commit,
00:02:15itu akan meng-commit semua yang di-stage ke sini dan semua yang tidak di-stage.
00:02:18Ini akan lebih masuk akal saat kita punya lebih banyak branch,
00:02:20tapi mari kita commit ini. Sekarang kita punya branch dengan satu commit di atasnya
00:02:25dan beberapa perubahan yang belum di-stage.
00:02:28Nah, di sinilah letak keunikannya karena tidak seperti Git,
00:02:31katakanlah saya ingin memasukkan readme ini,
00:02:34saya ingin commit readme ini dan push untuk membuat PR (Pull Request).
00:02:37Biasanya, jika saya sedang berada di branch "Clod" ini,
00:02:41saya harus melakukan stash pada branch ini, menambahkan readme, commit,
00:02:44lalu mem-push-nya untuk pull request.
00:02:45Tapi di Git Brother, kita bisa memiliki branch yang paralel.
00:02:50Jadi saya bisa ketik "but branch new readme" dan Anda bisa lihat saya punya branch baru
00:02:55yang terpisah, dan saya bisa melakukan staging pada file tersebut.
00:03:00Saya bisa langsung meng-commit file tersebut.
00:03:01Jika saya lihat file yang berubah,
00:03:07saya punya commit ini dengan dua hal terkait Clod tadi.
00:03:09Dan saya punya branch readme dengan satu perubahan readme. Sekali lagi,
00:03:11saya bisa melakukan hal yang sama. Saya bisa gunakan perintah commit
00:03:17-c untuk "create", jadi saya bisa membuat branch baru dengan cara ini. Mari kita lihat
00:03:21apa yang sebenarnya kita ubah di sini. Saya agak lupa. Oh,
00:03:25perintah "read" ini. Oke.
00:03:27Itu akan mengambil hal terakhir yang belum di-commit dan
00:03:32memungkinkan Anda membuat branch baru dan meng-commit ke sana.
00:03:35Sekarang kita bisa lihat ada tiga branch.
00:03:38Semuanya independen satu sama lain.
00:03:39Semua perubahan tersebut masih ada di direktori kerja kita.
00:03:42Kita sama sekali tidak mengubah direktori kerja kita.
00:03:44Kita hanya membuat commit di dalam memori.
00:03:46Sekarang saya bisa jalankan "but push" dan akan muncul pertanyaan: apa yang ingin Anda push?
00:03:50Apakah Anda ingin mem-push semuanya? Masing-masing punya satu commit yang belum dipush.
00:03:53Atau hanya satu saja? Mari kita push yang readme saja.
00:03:57Katakanlah hanya itu yang kita anggap sudah siap saat ini.
00:03:59Kita tinggal pilih yang itu dan alat ini akan mem-push-nya.
00:04:02Jika kita lihat statusnya lagi,
00:04:03kita bisa melihat yang ini sudah ter-push melalui status di sini.
00:04:06Sedangkan yang lainnya masih bersifat lokal.
00:04:08Git Brother punya kekuatan besar dalam mengelola banyak branch secara bersamaan.
00:04:11Tapi ia juga bisa melakukan stacked branches (branch bertumpuk).
00:04:13Mari kita lihat contoh pembuatan sesuatu yang baru
00:04:17berdasarkan salah satu commit yang telah kita lakukan,
00:04:19dengan membuat stacked branch dari sana.
00:04:20Jadi kita bisa menggabungkan yang bawah dan terus mengerjakan yang atas.
00:04:23Katakanlah kita ingin membuat stacked branch.
00:04:26Kita ingin perintah "read" ini ditinjau dan digabungkan,
00:04:30tapi kita ingin tetap bisa mengerjakannya.
00:04:32Ini saat yang tepat untuk menggunakan stacked branch daripada branch independen
00:04:35karena ada ketergantungan. Cara melakukannya adalah dengan mengetik:
00:04:38but branch new -a sebagai titik jangkar (anchor point),
00:04:42yaitu "SC read command" ini. Dan kita beri nama "SC read more".
00:04:46Sekarang jika kita lihat,
00:04:48kita bisa melihat branch ini bertumpuk di atasnya.
00:04:50Mari kita edit bagian ini.
00:04:52Kita bisa lihat ini mengambil 10 pesan dan menampilkannya.
00:04:57Mari kita ubah menjadi 20 pesan. Kita ubah juga yang ini.
00:05:02Bisa kita lihat ada perubahan dan ada ikon kunci karena ini
00:05:09mengubah file yang sudah kita commit di tempat lain.
00:05:11Jadi file ini terkunci ke commit tertentu.
00:05:13Kita hanya bisa meng-commit ini di atasnya karena ia mengubah kode
00:05:16yang diperkenalkan di sana. Kita bisa melihat perubahannya dengan perintah diff,
00:05:20cara yang bagus untuk melihat potongan kode (hunks) mana yang berubah, dan kita bisa
00:05:25langsung meng-commit-nya. Oke.
00:05:28Untuk menunjukkan betapa mudahnya memindahkan commit,
00:05:32saya akan tunjukkan caranya,
00:05:33kita jalankan status -f untuk melihat semua filenya.
00:05:37Mari kita bagikan ini. Kita sudah lihat perintah push,
00:05:40yang akan mem-push ke remote yang Anda miliki,
00:05:42tapi kita juga bisa mengetik PR untuk membuka pull request. Kita bisa tentukan,
00:05:46mana dari branch ini yang ingin dibuatkan pull request?
00:05:48Mari kita buka pull request untuk semuanya.
00:05:50Alat ini akan membuka editor untuk masing-masing dan bertanya,
00:05:54apa deskripsi PR-nya? Saya buat simpel saja.
00:05:57Sekarang semua PR sudah terbuka. Setelah terbuka,
00:06:01kita bisa melihat nomor-nomor di atas ini. Nomor satu, nomor dua,
00:06:04ini adalah nomor PR dan pesannya.
00:06:06Kita gunakan pesan yang sama setiap kalinya.
00:06:08Kita juga bisa melihat dengan perintah -v,
00:06:10yaitu verbose, untuk melihat URL dari masing-masing PR.
00:06:12Mari kita lihat salah satu.
00:06:14Ini adalah PR yang mengubah readme dan bisa kita lihat hanya ada
00:06:18satu commit dan hanya satu perubahan pada file readme itu. Sangat terisolasi.
00:06:23Ini yang versi bertumpuk (stacked).
00:06:24Jika kita lihat, apa yang dilakukannya adalah membuka tumpukan.
00:06:28Yang pertama, PR paling bawah menargetkan main, kan dari yang ini.
00:06:30Dan yang kedua, yang bisa kita buka di sini, menargetkan PR yang pertama.
00:06:35Jadi ini benar-benar melakukan stacked branch dengan benar.
00:06:39Sekarang mari kita lihat apa yang terjadi saat kita melakukan integrasi.
00:06:41Mari kita buka pull request readme ini. Kita bilang, oke,
00:06:43ini sudah bagus. Saya akan merge. Sekarang ini sudah ada di upstream.
00:06:46Dan jika kita jalankan "but pull --check", itu akan memeriksa statusnya.
00:06:49Kita juga bisa jalankan "but fetch", ini akan menjalankannya untuk Anda.
00:06:55Alat ini juga akan melakukan fetch di latar belakang sesekali.
00:06:57Anda mungkin melihatnya saat kita menjalankan beberapa perintah.
00:07:00Muncul tulisan "memulai proses latar belakang", tapi kita bisa lihat yang satu ini telah terintegrasi.
00:07:02Sudah terintegrasi di upstream. Jadi saat kita jalankan "but pull",
00:07:06yang dilakukan adalah mengambil informasi baru tersebut.
00:07:10Ini akan melakukan rebase pada branch kita yang lain dan menghapus
00:07:13branch yang sudah terintegrasi ini. Bisa dilihat branch tersebut sudah dihapus secara lokal.
00:07:16Jadi saat kita lihat, branch itu sudah selesai,
00:07:19sedangkan yang ini sudah di-rebase sehingga sudah diperbarui, dan kita bisa
00:07:22mem-push-nya kembali jika mau. Dan kapan saja,
00:07:25jika ingin kembali menggunakan Git biasa, Anda bisa ketik "but tear down".
00:07:29Ini akan memilih salah satu branch Anda.
00:07:33Bisa dilihat alat ini akan memilih branch pertama tempat Anda berada,
00:07:36namun Anda tetap memiliki semua branch yang tadi kita kerjakan.
00:07:39Hanya saja Git biasa cuma bisa berada di satu branch. Sekarang Anda kembali di satu branch.
00:07:43Anda bisa gunakan "setup" dan "tear down" untuk masuk-keluar dari mode Git Brother.
00:07:47Jika ingin mengerjakan banyak branch atau sekadar pakai alat commit Git normal.
00:07:50Tapi sekali lagi, meski dalam mode Git Brother, Anda tetap bisa pakai sebagian besar
00:07:55perintah Git. Anda bisa ketik "git show" pada salah satu commit. Hasilnya sama.
00:08:00Anda bisa ketik "git log", hasilnya sama, tetap berfungsi.
00:08:04Semua perintah baca (reading commands) ini berfungsi normal. Show, log, semuanya.
00:08:08Hanya masalah pengelolaan commit saja yang kami bantu atur. Dalam hal ini,
00:08:13Anda juga bisa langsung melakukan checkout pada sesuatu dan Git Brother akan mendeteksinya
00:08:16lalu otomatis menghentikan apa yang sedang dikerjakannya. Dan lagi-lagi,
00:08:21semuanya akan kembali normal.
00:08:24Hal terakhir yang ingin saya tunjukkan adalah semua perintah ini punya versi --json.
00:08:26Jika ingin menjalankan status dengan --json, Anda bisa melakukannya.
00:08:30Jika ingin menjalankan "show" pada sebuah commit, misalnya,
00:08:34hampir semua perintah memilikinya, dan Anda bisa lihat semua perintah dengan "but help".
00:08:41Hampir semuanya punya opsi --json atau -j.
00:08:44Yang artinya Anda bisa membuat skrip dengan mudah. Bahkan yang menarik,
00:08:48Anda bisa melakukan "diff" dan ia akan memberikan versi JSON dari diff tersebut,
00:08:52menurut saya ini sangat keren.
00:08:56Itulah perkenalan singkat tentang Git Brother dan apa yang bisa dilakukannya dibanding Git biasa.
00:09:00Sekali lagi, Anda bisa gunakan ini di repositori Git mana pun.
00:09:01Cukup jalankan "but setup", lalu mulai gunakan perintah-perintah tadi.
00:09:05Anda bisa dapat output JSON, mengelola banyak branch sekaligus,
00:09:08mengelola stacked branch, integrasi GitHub, serta manajemen PR.
00:09:12Semuanya tinggal pakai, jalankan perintah "but", dan selesai.
00:09:15Kapan pun ingin kembali ke Git,
00:09:17meskipun sebagian besar perintah Git masih berfungsi di lingkungan ini,
00:09:20Anda tinggal jalankan "tear down" atau checkout branch, dan semuanya akan bersih kembali.
00:09:24Silakan dicoba sekarang juga.
00:09:26Buka [gitbrother.com/cli](https://www.google.com/search?q=https://gitbrother.com/cli) untuk mengunduh dan mulai mencobanya.
00:09:29Mampirlah ke Discord kami dan beri tahu pendapat Anda. Terima kasih.
00:09:33for you. So go ahead and try it out today.
00:09:35You can go to get brother.com/cli and download it and start playing with it.
00:09:39Drop into our discord and let me know what you think. Thanks.

Key Takeaway

GitButler CLI adalah alat baris perintah inovatif yang meningkatkan produktivitas pengembang dengan memungkinkan pengelolaan banyak branch dan Pull Request secara paralel tanpa gangguan pada direktori kerja.

Highlights

GitButler CLI (perintah "but") dirancang sebagai pengganti Git yang lebih efisien untuk manajemen branch secara paralel.

Fitur Virtual Branches memungkinkan pengguna mengerjakan beberapa branch secara bersamaan tanpa perlu melakukan stash atau berpindah context secara manual.

Kemampuan untuk membuat Stacked Branches (branch bertumpuk) guna menangani ketergantungan antar perubahan kode yang berbeda.

Integrasi mendalam dengan GitHub yang memudahkan pembuatan Pull Request (PR) langsung dari baris perintah untuk banyak branch sekaligus.

Dukungan penuh untuk output format JSON pada hampir semua perintah

Timeline

Pengenalan dan Dasar-dasar GitButler CLI

Scott Chacone memperkenalkan GitButler CLI sebagai alat baru yang dapat digunakan secara terprogram oleh pengguna baris perintah. Setelah instalasi, perintah utama yang digunakan adalah "but" yang berfungsi sebagai pengganti langsung untuk perintah Git tradisional. Scott menunjukkan perintah "but status" yang memberikan tampilan perubahan file yang lebih ringkas dan terorganisir dibandingkan dengan status Git biasa. Pengguna dapat melakukan commit cepat yang secara otomatis membuat branch sementara untuk menampung perubahan tersebut. Bagian ini menekankan betapa mudahnya memulai dan melihat status repositori dengan alur kerja yang lebih modern.

Manajemen Branch dan Staging yang Efisien

Dalam bagian ini, didemonstrasikan cara membatalkan commit dengan perintah "uncommit" dan menamai ulang branch untuk organisasi yang lebih baik. Scott memperkenalkan konsep penggunaan kode singkat (short codes) untuk melakukan staging file dengan cepat tanpa harus mengetik seluruh path file. Fitur ini sangat berguna untuk memisahkan perubahan yang berbeda ke dalam beberapa commit atau branch yang relevan. Keunggulan utamanya adalah kemampuan untuk mengelola file yang di-stage dan yang tidak di-stage secara intuitif di dalam satu tampilan. Hal ini mempermudah pengembang dalam menjaga kebersihan riwayat commit mereka sejak awal proses pengembangan.

Bekerja dengan Banyak Branch Secara Paralel

Scott menjelaskan perbedaan mendasar antara GitButler dan Git konvensional dalam hal menangani banyak tugas secara bersamaan. Di GitButler, pengguna dapat memiliki branch yang berjalan secara paralel di direktori kerja yang sama tanpa perlu melakukan stash atau berpindah branch secara fisik. Contoh yang diberikan adalah membuat branch baru untuk file readme sambil tetap mempertahankan perubahan kode di branch lain. Pengguna dapat memilih branch mana yang siap untuk di-push ke remote secara individu atau sekaligus. Kemampuan ini menghilangkan hambatan alur kerja yang biasanya muncul saat harus menangani perbaikan kecil di tengah tugas besar.

Implementasi Stacked Branches (Branch Bertumpuk)

Bagian ini membahas fitur canggih bernama Stacked Branches yang digunakan ketika satu perubahan bergantung pada perubahan di branch lain. Scott menunjukkan cara membuat branch baru di atas branch yang sudah ada sebagai titik jangkar (anchor point). Sistem GitButler akan menandai file yang terkunci dengan ikon kunci jika file tersebut sedang dimodifikasi di branch yang saling tumpang tindih. Hal ini memungkinkan pengembang untuk terus bekerja pada fitur lanjutan sambil menunggu peninjauan kode pada fitur dasarnya. Alur kerja ini sangat efektif untuk tim yang melakukan review kode secara ketat namun ingin tetap mempertahankan momentum pengembangan.

Integrasi GitHub dan Manajemen Pull Request

GitButler memudahkan proses pembuatan Pull Request (PR) langsung melalui baris perintah dengan perintah "but PR". Alat ini dapat membuka editor untuk mengisi deskripsi PR bagi semua branch yang dipilih dan memberikan URL langsung ke halaman GitHub. Scott juga menunjukkan bagaimana GitButler menangani PR yang bertumpuk secara otomatis dengan mengatur target branch yang tepat di upstream. Ketika sebuah PR digabungkan (merge) di GitHub, perintah "but pull" akan secara otomatis melakukan rebase pada branch lain dan menghapus branch lokal yang sudah terintegrasi. Fitur otomatisasi ini secara signifikan mengurangi pekerjaan manual dalam menyinkronkan status repositori lokal dengan server remote.

Interoperabilitas dengan Git dan Dukungan JSON

Pada bagian penutup, Scott menjelaskan bahwa pengguna dapat masuk atau keluar dari mode GitButler kapan saja menggunakan perintah "setup" dan "tear down". Meskipun dalam mode GitButler, perintah pembacaan Git standar seperti "git log" atau "git show" tetap berfungsi sebagaimana mestinya. Salah satu fitur teknis yang menonjol adalah dukungan opsi --json atau -j pada hampir semua perintah untuk memudahkan pembuatan skrip otomatis. Scott mengajak pengguna untuk mencoba alat ini di repositori Git apa pun dan bergabung dengan komunitas Discord untuk memberikan umpan balik. Video berakhir dengan informasi bahwa GitButler CLI dapat diunduh langsung melalui situs resmi mereka.

Community Posts

View all posts