K

Command Palette

Search for a command to run...

Daftar

Workflow GitHub (Fork & Pull Request)

Belajar konsep dasar cara berkontribusi ke proyek orang lain (atau proyek tim) di GitHub menggunakan alur kerja Fork, Clone, Branch, Commit, Push, dan Pull Request (PR).

Jadi Kontributor Keren: Kenalan Sama Alur Kerja GitHub (Fork & Pull Request)!

Udah bisa clone, pull, dan push ke repositori GitHub-mu sendiri? Mantap! Sekarang, gimana kalau kamu mau berkontribusi ke proyek orang lain yang ada di GitHub? Misalnya, ada proyek open source keren yang pengen kamu bantu benerin bug-nya atau nambahin fitur. Atau, gimana kalau kamu kerja di tim dan mau ngajuin perubahanmu biar direview dulu sebelum digabung ke kode utama?

Nah, di sinilah alur kerja (workflow) yang melibatkan Fork dan Pull Request (PR) jadi penting banget di GitHub!

Ini mungkin kedengeran agak ribet awalnya, tapi ini adalah cara standar buat kolaborasi yang teratur dan aman di banyak proyek. Kita bakal kenalan sama konsep dasarnya ya.

Apa Itu "Fork"? Bikin "Salinan Pribadi" Repositori Orang

Kalau kamu nemu repositori publik di GitHub yang pengen kamu oprek atau kontribusiin, kamu gak bisa langsung nge-push perubahan ke repositori asli orang itu (kecuali kamu dikasih akses langsung sebagai kolaborator, yang jarang buat proyek publik besar).

Langkah pertamanya adalah mem-fork repositori itu.

  • Forking itu kayak kamu bikin salinan pribadi dari repositori orang lain ke akun GitHub-mu sendiri.
  • Salinan ini (fork-mu) bakal punya histori commit yang sama persis kayak repositori aslinya pas kamu fork.
  • Keuntungannya: Kamu punya kontrol penuh atas fork-mu ini. Kamu bisa bebas nge-push commit, bikin branch, eksperimen, tanpa ngerusak repositori aslinya.

Cara Fork di GitHub:

  1. Buka halaman repositori orang lain yang mau kamu fork di GitHub.
  2. Di pojok kanan atas, biasanya ada tombol Fork. Klik tombol itu. Tombol Fork di GitHub (Sumber Gambar: Dokumentasi GitHub)
  3. GitHub bakal nanya beberapa hal (misalnya, mau di-fork ke akun pribadimu atau organisasi, nama reponya mau diganti gak, dll.). Biasanya, tinggal ikutin aja default-nya.
  4. Setelah selesai, kamu bakal punya repositori baru di akunmu yang namanya sama kayak repositori aslinya, tapi ada tulisan "forked from <nama_repo_asli>" di bawahnya.

Alur Kerja Umum Berkontribusi Pake Fork & Pull Request

Setelah kamu punya fork-mu sendiri, ini alur kerja yang paling umum buat ngasih kontribusi balik ke proyek aslinya:

  1. Clone Fork-mu ke Komputer Lokal:

    • Dari halaman fork-mu di GitHub (yang ada di akunmu), clone repositori itu ke komputermu pake git clone <URL_fork_milikmu>. Jangan salah clone repositori aslinya ya!
    bash
    git clone https://github.com/NamaPenggunaKAMU/NamaRepoHasilFork.git
    cd NamaRepoHasilFork
  2. (Opsional tapi Sangat Direkomendasikan) Tambahkan Remote ke Repositori Asli ("Upstream"):

    • Biar kamu bisa dapet update terbaru dari proyek aslinya nanti, ada baiknya kamu nambahin remote yang nunjuk ke repositori asli itu. Biasanya dikasih nama alias upstream.
    bash
    # Ganti URL_repo_asli dengan URL repositori original tempat kamu fork
    git remote add upstream https://github.com/NamaPenggunaASLI/NamaRepoASLI.git
     
    # Cek remote-mu
    git remote -v
    # Harusnya sekarang ada 'origin' (nunjuk ke fork-mu) dan 'upstream' (nunjuk ke repo asli)
  3. Selalu Jaga Branch main Lokalmu Sinkron dengan main Upstream:

    • Sebelum mulai kerja, ada baiknya pastiin branch main di fork lokalmu itu update sama versi terbaru dari branch main di repositori asli (upstream).
    bash
    git switch main                # Pindah ke branch main lokalmu
    git fetch upstream             # Ambil semua update dari upstream (tanpa merge)
    git merge upstream/main        # Gabungin main upstream ke main lokalmu
    # atau git rebase upstream/main (lebih advance, bikin histori lebih lurus)
    git push origin main           # (Opsional) Update main di fork GitHub-mu juga

    Lakuin ini secara berkala biar kamu gak ketinggalan banyak perubahan.

  4. Buat Branch Baru untuk Perubahanmu:

    • JANGAN PERNAH kerja langsung di branch main di fork-mu kalau mau bikin Pull Request. Selalu bikin branch baru buat tiap fitur atau perbaikan bug yang mau kamu kerjain.
    bash
    # Dari branch main lokalmu yang udah update
    git switch -c nama-fitur-barumu 
    # atau git switch -c perbaikan-bug-xyz
  5. Kerja, add, dan commit Perubahanmu di Branch Baru Itu:

    • Lakuin semua perubahan kode yang kamu mau di branch baru ini.
    • git add .
    • git commit -m "Pesan commit yang jelas soal fitur/perbaikanmu"
    • Lakuin ini sesering mungkin dengan commit yang kecil-kecil dan logis.
  6. Push Branch Baru Itu ke Fork-mu di GitHub (origin):

    bash
    git push -u origin nama-fitur-barumu

    Sekarang, branch nama-fitur-barumu beserta semua commit-nya udah ada di repositori fork-mu di GitHub.

  7. Buat Pull Request (PR) dari GitHub:

    • Buka halaman fork-mu di GitHub. Biasanya GitHub pinter, dia bakal ngeliat ada branch baru yang baru aja kamu push dan nawarin tombol "Compare & pull request". Tombol Compare & Pull Request di GitHub (Sumber Gambar: Dokumentasi GitHub)
    • Kalau gak ada, kamu bisa pindah ke branch-mu itu di GitHub, terus klik tombol "Pull request" atau "Contribute" > "Open pull request".
    • Apa itu Pull Request? Ini adalah permintaan resmi dari kamu ke pemilik repositori asli buat "narik" (pull) perubahan dari branch-mu di fork-mu dan ngegabunginnya (merge) ke branch tertentu di repositori asli mereka (biasanya ke branch main atau develop mereka).
    • Di halaman pembuatan Pull Request:
      • Pastikan base repository (tujuan) itu repositori asli dan branch tujuan (misal, main).
      • Pastikan head repository (sumber) itu fork-mu dan branch fiturmu.
      • Kasih judul PR yang jelas dan deskripsi yang detail soal perubahan apa aja yang kamu buat, kenapa, dan gimana cara ngetesnya (kalau perlu). Ini penting banget buat ngebantu maintainer proyek ngertiin kontribusimu.
    • Klik tombol "Create pull request".
  8. Diskusi, Review, dan (Semoga) Merge!:

    • Setelah PR dibuat, maintainer proyek asli bakal dapet notifikasi.
    • Mereka mungkin bakal ngereview kodemu, ngasih komentar, atau minta perubahan. Di sinilah proses kolaborasi terjadi. Kamu bisa diskusi dan nge-push commit tambahan ke branch fiturmu di fork-mu (PR-nya bakal otomatis ke-update).
    • Kalau semua udah oke, maintainer proyek bisa nge-merge Pull Request-mu. Hore! Kontribusimu udah jadi bagian dari proyek asli! 🎉
  9. (Setelah PR di-merge) Sinkronkan Lagi Fork-mu dan Hapus Branch Fitur (Opsional):

    • Setelah PR-mu di-merge ke main repositori asli, ada baiknya kamu update lagi branch main di fork-mu biar sama (langkah 3).

    • Branch fitur (nama-fitur-barumu) yang tadi udah gak kepake lagi. Kamu bisa hapus dari lokal dan dari remote (fork-mu di GitHub) biar rapi.

      bash
      # Di lokal, pindah ke main dulu
      git switch main
      git branch -d nama-fitur-barumu 
       
      # Hapus branch di remote origin (fork-mu)
      git push origin --delete nama-fitur-barumu

Alur kerja ini mungkin keliatan panjang, tapi ini standar di banyak proyek open source dan tim. Ini ngejaga kode utama tetep stabil dan semua perubahan bisa direview dulu.

Kenapa Gak Langsung Clone Repo Asli dan Push?

Karena kamu (biasanya) gak punya izin tulis (write access) langsung ke repositori orang lain. Forking itu cara GitHub ngasih kamu "ruang kerja pribadi" buat nyiapin kontribusimu.


Workflow Fork dan Pull Request ini adalah jantung dari kolaborasi di GitHub. Meskipun kamu baru mulai dan mungkin belum langsung kontribusi ke proyek open source gede, ngertiin konsep ini bakal berguna banget. Kamu bahkan bisa pake alur kerja PR ini buat proyek pribadimu sendiri kalau mau ada proses review sebelum ngegabung ke main.

Ini adalah pengenalan konsep ya. Detail implementasi tiap langkah (terutama pas nyelesaiin konflik atau diskusi di PR) bisa lebih kompleks lagi. Tapi, semoga ini ngasih gambaran umum gimana caranya jadi kontributor yang baik di ekosistem GitHub!


Kuis Workflow GitHub (Fork & Pull Request)

Pertanyaan 1 dari 4

Apa langkah pertama yang biasanya Anda lakukan jika ingin berkontribusi (misalnya, memperbaiki bug) pada sebuah repositori publik di GitHub yang bukan milik Anda?