- Bab 3 dari 8
- 30 menit
- 4 soal kuis
Membuat repository, README, Markdown, .gitignore, dan lisensi
Di bab ini (10 bagian)
Tujuan bab ini
- Membuat repository di GitHub dengan pilihan visibilitas, README,
.gitignore, dan lisensi yang tepat. - Memahami dua jalur memulai: clone repo dari GitHub atau membuat repo lokal lalu push.
- Mengenal file standar sebuah repo dan menulis README dengan Markdown.
- Memakai
.gitignoredengan benar dan memilih lisensi MIT, Apache-2.0, atau GPL.
Membuat repository di GitHub
Repository adalah wadah proyek: kode, riwayat commit, dan dokumentasinya. Cara membuatnya lewat website:
- Klik tombol + di kanan atas, pilih New repository.
- Isi Repository name, pakai huruf kecil dan tanda hubung, misalnya
belajar-github. Tambahkan deskripsi singkat. - Pilih visibilitas Public atau Private.
- Aktifkan opsi menambah README agar repo tidak kosong.
- Pilih template .gitignore sesuai bahasa (misalnya Node atau Python) dan license bila perlu.
- Klik Create repository.
Public atau Private? Public bisa dilihat semua orang, cocok untuk portofolio dan open source. Private hanya bisa diakses kamu dan kolaborator yang diundang, cocok untuk tugas kuliah atau proyek internal. Visibilitas bisa diubah nanti di Settings.
Clone atau buat lokal lalu push?
Ada dua jalur, pilih sesuai kondisi.
Jalur 1: repo dibuat di GitHub dulu, lalu clone. Cocok untuk proyek baru. Ambil alamatnya dari tombol hijau Code:
Remote origin langsung terpasang dan branch main sudah terhubung ke origin/main.
Jalur 2: proyek sudah ada di laptop. Buat repo kosong di GitHub (jangan centang README, .gitignore, atau lisensi supaya tidak bentrok), lalu GitHub akan menampilkan petunjuk "push an existing repository from the command line". Isinya kira-kira:
Baris terakhir output push memuat:
Opsi -u mengingat pasangan branch lokal dan remote, jadi push berikutnya cukup git push. Penjelasan detail add, commit, dan remote ada di kelas Git.
Anatomi repository
Proyek yang rapi biasanya punya struktur seperti ini:
- README.md: halaman depan repo, tampil otomatis di tab Code.
- LICENSE: aturan hukum pemakaian kodemu. GitHub mendeteksinya dan menampilkan nama lisensi di sidebar repo.
- .gitignore: daftar file yang tidak ikut dilacak Git.
- CONTRIBUTING.md: panduan untuk kontributor. GitHub menautkannya saat orang membuat issue atau pull request.
- docs/: dokumentasi yang terlalu panjang untuk README.
Folder .git/ tidak ikut terlihat di GitHub. Itu database Git lokal yang dibuat git init, dan menghapusnya berarti menghapus seluruh riwayat di laptop.
README yang baik
README adalah kesan pertama. Orang memutuskan dalam beberapa detik apakah proyekmu layak dicoba. README yang baik menjawab:
- Ini apa? Satu-dua kalimat tujuan proyek.
- Seperti apa? Screenshot atau link demo.
- Cara memasang dan menjalankan. Perintah yang bisa langsung di-copy.
- Cara memakai. Contoh singkat.
- Cara berkontribusi dan lisensi.
Sintaks Markdown
Markdown dipakai di README, issue, pull request, dan komentar. GitHub memakai GitHub Flavored Markdown (GFM) yang menambahkan tabel dan task list.
Beberapa hal yang sering terlewat: beri baris kosong antar paragraf, tulis nama bahasa setelah tiga backtick supaya kode berwarna, dan pakai path relatif untuk gambar di dalam repo. Task list - [ ] di issue atau pull request bahkan bisa dicentang langsung di browser.
.gitignore dan lisensi
.gitignore berisi pola file yang diabaikan Git: dependensi, hasil build, file sistem, dan terutama rahasia.
Template siap pakai untuk banyak bahasa tersedia saat membuat repo, sumbernya repository resmi github/gitignore. Penting: .gitignore hanya berlaku untuk file yang belum dilacak. Kalau .env sudah terlanjur di-commit, menambahkannya ke .gitignore tidak menghapusnya. Lepaskan dari pelacakan dengan git rm --cached .env, commit, lalu ganti kredensial di dalamnya karena riwayat lama masih menyimpannya.
Lisensi. Tanpa lisensi, kodemu secara hukum tetap hak cipta penuh milikmu, dan orang lain tidak punya izin resmi untuk memakai atau memodifikasinya meskipun repo publik. Tiga yang paling umum:
- MIT: paling permisif. Bebas dipakai, diubah, dan dijual, asal pemberitahuan hak cipta dan lisensi tetap dicantumkan.
- Apache-2.0: permisif seperti MIT, ditambah pemberian lisensi paten yang eksplisit dan kewajiban mencatat perubahan.
- GPL-3.0: copyleft. Karya turunan yang didistribusikan wajib dibuka dengan lisensi GPL juga.
Bingung? Situs choosealicense.com (dikelola GitHub) membantu memilih. Lupa menambah lisensi? Di tab Code pilih Add file > Create new file, ketik nama LICENSE, lalu klik Choose a license template.
Coba sendiri
Buktikan cara kerja .gitignore di laptopmu:
Output yang diharapkan, .env dan node_modules/ tidak muncul:
Lanjutkan commit dan sambungkan ke repo kosong yang kamu buat di GitHub (ganti rani-dev dengan username-mu):
Refresh halaman repo di browser. README-mu kini tampil di tab Code.
Kesalahan umum
- Membuat repo dengan README lalu push proyek lokal yang berbeda. Riwayatnya tidak nyambung dan push ditolak. Untuk jalur 2, buat repo kosong.
- Menambah
.envke.gitignoresetelah di-commit. File tetap dilacak sampai di-git rm --cached, dan kredensialnya harus diganti. - Repo publik tanpa lisensi. Orang bisa melihat, tapi tidak punya izin legal untuk memakai.
- README cuma judul. Tambahkan tujuan, cara install, dan cara pakai.
Rangkuman
- Buat repo lewat + > New repository, tentukan Public/Private, README, template
.gitignore, dan lisensi. - Repo baru di GitHub cukup di-clone, proyek lokal disambungkan dengan
git remote add originlalugit push -u origin mainke repo kosong. - File standar repo: README.md, LICENSE, .gitignore, CONTRIBUTING.md, dan folder docs.
- Markdown (GFM) mendukung heading, list, link, gambar, code block, tabel, dan task list.
.gitignorehanya untuk file yang belum dilacak, dan lisensi MIT, Apache-2.0, atau GPL menentukan hak orang lain atas kodemu.
Slide 12 sampai 16 dari deck GitHub. Penjelasan lengkapnya ada di mode Baca.

Selesaikan bab ini
- 1. Baca materi
- 2. Kuis (4 soal)
Cek pemahaman
1File apa saja yang muncul pada output git status --short terakhir?
$ git init $ echo "# belajar-github" > README.md $ printf 'node_modules/\n.env\n' > .gitignore $ mkdir node_modules $ touch node_modules/a.js .env index.js $ git status --short2Lisensi mana yang mewajibkan karya turunan yang didistribusikan memakai lisensi yang sama?
3Proyek sudah ada di laptop. Repo GitHub seperti apa yang sebaiknya dibuat sebelum push?
4Menambahkan .env ke .gitignore otomatis menghapus .env yang sudah pernah di-commit dari pelacakan.