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:
- Buka halaman repositori orang lain yang mau kamu fork di GitHub.
- Di pojok kanan atas, biasanya ada tombol
Fork
. Klik tombol itu.(Sumber Gambar: Dokumentasi GitHub)
- 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.
- 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:
-
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
- Dari halaman fork-mu di GitHub (yang ada di akunmu), clone repositori itu ke komputermu pake
-
(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)
- 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
-
Selalu Jaga Branch
main
Lokalmu Sinkron denganmain
Upstream:- Sebelum mulai kerja, ada baiknya pastiin branch
main
di fork lokalmu itu update sama versi terbaru dari branchmain
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.
- Sebelum mulai kerja, ada baiknya pastiin branch
-
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
- JANGAN PERNAH kerja langsung di branch
-
Kerja,
add
, dancommit
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.
-
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. -
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".
(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
ataudevelop
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.
- Pastikan base repository (tujuan) itu repositori asli dan branch tujuan (misal,
- Klik tombol "Create pull request".
- 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".
-
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! 🎉
-
(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 branchmain
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?