GitHub Workflow — Git

GitHub adalah platform hosting Git repository dengan fitur kolaborasi yang sangat kaya. 1. Pull Request (PR): Cara mengusulkan perubahan ke repository: 1…

Di GitHub, perubahan masuk ke repo orang lain lewat Pull Request (PR): kamu mengusulkan perubahan dari sebuah branch, orang lain membacanya (review), lalu pemilik repo menggabungkannya (merge). Mirip mengusulkan perbaikan resep di buku resep keluarga milik Nenek. Kamu gak boleh menulis langsung di bukunya. Jadi kamu fotokopi dulu bukunya, tulis perbaikan di fotokopianmu, lalu bawa ke Nenek: "resep ini mau aku ubah begini." Nenek membaca, mungkin minta diubah sedikit, lalu menyalinnya ke buku asli.

🧪 Tebakan cepat: kamu sudah membuka PR, lalu reviewer minta satu perbaikan. Apa yang kamu lakukan: tutup PR-nya lalu bikin PR baru, atau cukup push commit baru ke branch yang sama? Tebak dulu, jawabannya ada di bagian "Review, lalu merge".

Tiga tempat repo: asli, fork, dan clone

Ambil contoh repo belajarweb/kamus, kamus istilah web milik akun belajarweb. Kamu menemukan typo di dalamnya: tertulis Comit, harusnya Commit. Kamu gak punya akses tulis ke repo itu, jadi perubahanmu lewat tiga tempat:

Tempat Alamat Isinya
Repo asli (upstream) github.com/belajarweb/kamus Milik orang lain. Tujuan akhir perubahanmu.
Fork github.com/kamu/kamus Salinan repo asli di akun GitHub-mu, dibuat dengan tombol Fork. Kamu bebas push ke sini.
Clone folder kamus di laptopmu Salinan fork-mu di komputermu, dibuat dengan git clone. Di sini kamu mengedit dan commit.

Jadi bedanya: fork itu salinan di GitHub, clone itu salinan di komputermu. Untuk berkontribusi ke project open source, langkah pertamanya fork, baru clone fork-mu.

Dari fork sampai Pull Request

Klik tombol Fork di halaman github.com/belajarweb/kamus. Setelah fork kamu/kamus jadi, lanjut di terminal:

$ git clone https://github.com/kamu/kamus.git
Cloning into 'kamus'...
$ cd kamus
$ git switch -c perbaiki-typo
Switched to a new branch 'perbaiki-typo'
$ git add kamus.md                 # setelah Comit diganti Commit di editor
$ git commit -m "docs: perbaiki typo Comit di kamus"
[perbaiki-typo 3f2a91c] docs: perbaiki typo Comit di kamus
 1 file changed, 1 insertion(+), 1 deletion(-)
$ git push -u origin perbaiki-typo
remote: Create a pull request for 'perbaiki-typo' on GitHub by visiting:
remote:      https://github.com/kamu/kamus/pull/new/perbaiki-typo
To https://github.com/kamu/kamus.git
 * [new branch]      perbaiki-typo -> perbaiki-typo

Buka link itu (atau tombol Compare & pull request), lalu pilih arahnya: base belajarweb/kamus branch main, compare kamu/kamus branch perbaiki-typo. Isi judul dan penjelasan, lalu Create pull request. Sekarang ada PR #12 dengan tulisan: kamu wants to merge 1 commit into belajarweb:main from kamu:perbaiki-typo.

Pull Request adalah fitur GitHub untuk mengajukan penggabungan kode dari satu branch ke branch utama, supaya di-review dulu sebelum di-merge.

Review, lalu merge

Pemilik repo, misalnya rina, membaca perubahanmu di tab Files changed. Dia punya tiga pilihan:

Misalnya Rina minta: "Tambahkan contoh perintahnya juga, ya." Kamu gak perlu bikin PR baru. Edit di laptop, commit, lalu push ke branch yang sama:

$ git add kamus.md
$ git commit -m "docs: tambah contoh git commit"
[perbaiki-typo 8d4e7b2] docs: tambah contoh git commit
 1 file changed, 1 insertion(+)
$ git push
To https://github.com/kamu/kamus.git
   3f2a91c..8d4e7b2  perbaiki-typo -> perbaiki-typo

PR #12 ikut ter-update dan sekarang berisi 2 commit, karena PR menunjuk ke branch, bukan ke commit tertentu. Itu jawaban tebakannya. Setelah Rina klik Approve, dia klik Merge pull request. Di main repo asli muncul merge commit Merge pull request #12 from kamu/perbaiki-typo, dan PR-nya berstatus Merged.

💡 Kalau kamu anggota tim

⚠️ Jebakan yang sering ketemu

TL;DR: Untuk repo orang lain: Fork (salinan di GitHub-mu), git clone fork-nya (salinan di komputermu), git switch -c branch baru, commit, git push -u origin <branch>, lalu buka Pull Request ke main repo asli. Reviewer bisa Comment, Approve, atau Request changes. Revisi cukup di-push ke branch yang sama, PR-nya ikut ter-update. Setelah di-approve, PR di-merge dan muncul Merge pull request #12 from .... Anggota tim dengan akses tulis gak perlu fork.

Yang akan kamu pelajari