Halaman ini dibuat khusus guna mengikat ilmu yang pernah dialami oleh penulis seputar GitHub, serta menyempurnakan halaman sebelumnya, dan akan diupdate seiring berjalannya waktu atau jika menemui masalah baru terkait GitHub. Tidak menutup kemungkinan di halaman lain dengan #tag GitHub.

Tentang GitHub Bahasa Indonesia - Tutorial Lengkap
Bermula dari sebuah tugas yang diberikan oleh seorang dosen yang memuat beberapa pokok bahasan, hingga kini berlanjut ke dunia kerja / nyata / lapangan.
Pokok Bahasan:
- Apa itu git versioning (github)?
- Manfaat menguasai / memiliki keahlian github
- Cara membuat Repository
- Apa itu Branch?
- Fungsi Branch
- Cara download data terbaru repository
- Cara install git versioning (github)
- Cara mengirim pekerjaan / project ke repository
- Cara berkomentar di repository
- Cara berkontribusi di github
1. Apa itu git versioning (github)?
GitHub adalah layanan repository (penyimpanan) project berbasis web, guna membangun perangkat lunak secara kolaboratif bersama komunitas. Lebih dari 29 proyek dan 11 juta orang telah bergabung di dalamnya, mereka bersama pengembang lainnya dapat menemukan, menggunakan dan berkontribusi dengan alur kerja yang kuat.
Version Control System (VCS) atau disebut juga dengan Git, adalah jantungnya GitHub yang bersifat open source, dimana bertanggung jawab atas segala sesuatunya terkait GitHub yang berjalan pada lokal komputer Anda. VCS atau Git diciptakan oleh Linus Torvalds pada tahun 2005 yang diterapkan pada versi kernel Linux.
2. Manfaat menguasai / memiliki keahlian github
- Agar kita dapat mengembangkan perangkat lunak secara team work (kolaborasi),
- Agar pengerjaan proyek lebih cepat, efektif, efisien dan produktif,
- Agar mendapatkan kualitas proyek terbaik, karena setiap tim bisa saling kontrol.
3. Cara membuat Repository
Dalam hal ini, saya asumsikan bahwa Anda sudah memiliki akun GitHub, cara registrasinya mudah, sama halnya saat Anda registrasi pada gmail, facebook, twitter, kaskus, dll.
Untuk menempatkan proyek pada GitHub, maka Anda perlu membuat repository, caranya:
3.1 Di sudut kanan atas ada tanda + >> klik, maka muncul menu dropdown >> klik New repository

3.2 Buat nama repository singkat saja, agar mudah untuk diingat, misalnya "CI_CRUD"
3.3 Opsional, menambahkan deskripsi repository Anda, misalnya "tentang create read update delete"
3.4 Tentukan previlage (hak akses) untuk repository Anda, Public atau Private.
- Repository public adalah pilihan untuk memulai bekerja bersama pengguna GitHub lainnya, sehingga Anda bisa mendapatkan keuntungan dari kolaborasi bersama komunitas.
- Repository private adalah pilihan untuk memulai bekerja secara independent ataupun individu, dimana fitur yang disediakan lebih sedikit dibanding public dan Anda juga bisa menentukan kepada siapa ingin berkolaborasi.

3.5 Select Initialize this repository with a README.
3.6 Klik Create repository.

Selamat!, sekarang Anda sudah memiliki repository
Disana ada beberapa fitur seperti commit, branch, release dan contributor, namun mari kita mulai terlebih dahulu dari apa itu branch?
4. Apa itu Branch?
Branch (cabang) adalah semacam label pengaturan untuk menentukan tujuan, fungsi atau keperluan dari proyek Anda, secara default biasanya sebagai master. Anda bisa merubahnya menjadi lebih spesifik untuk keperluan lain. Contoh;

Branch NIM untuk keperluan Tugas Kuliah
5. Fungsi Branch
- Untuk mengembangkan fitur,
- Untuk memperbaiki bug (error atau konflik),
- Untuk ber-eksperimen dengan ide-ide baru secara aman dan leluasa.
6. Cara download data terbaru repository
Anda bisa menggunakan url clone untuk mengkloning repository ke lokal PC Anda, url clone bisa diakses menggunakan GitHub Desktop (GUI), Git Desktop (GUI), Git Shell (CLI), Git Bash (CLI), maupun Git CMD (CLI).
Bisa juga menggunakan menu Open in Desktop, jika Anda klik, maka default aplikasi Github GUI yang ada di PC Anda akan terbuka dan secara otomatis melakukan proses cloning.
Bisa juga menggunakan menu Download ZIP, jika Anda klik, maka akan mendownload repository dalam kemasan ZIP.

7. Cara install git versioning (github)
Kedua aplikasi tersebut sudah dilengkapi dengan versi GUI maupun CLI. Anda bebas mau pilih menggunakan yang mana. Tapi dalam rangka memberikan yang terbaik pada tutorial ini, maka saya download keduanya, dan akan saya demokan kepada Anda. Kita mulai dari GitHub installer terlebih dahulu, berikutnya Git installer.

Git Versioning Installer
7.1 Instal GitHub Setup
Double klik GitHubSetup.exe, maka mucul dialog untuk meminta permisi dari Anda, setelah Anda setujui, maka secara otomatis installer GitHub akan mengidentifikasi system komputer Anda, kemudian melakukan instalasi secara online, tunggu sampai proses selesai.

Dialog Permisi

Proses Instalasi GitHub Secara Online
Setelah proses instalasi selesai, maka otomatis GitHub GUI akan terbuka, atau jika tidak, maka anda bisa klik shortcut GitHub pada Desktop PC Anda. Anda diminta untuk login terlebih dahulu.

Login GitHub Desktop

Cek Status Akun di Pengaturan (icon gerigi)
Setelah berhasil masuk, berikutnya kita tinggal menambahkan project yang telah kita buat ke repositori CI_CRUD yang ada di server GitHub. Dengan cara ikuti poin 8.
7.2 Instal Git Setup
Double klik Git-2.11.0-32-bit.exe, maka mucul dialog untuk meminta permisi dari Anda, berikutnya Anda akan disuguhkan dengan informasi tentang lisensi aplikasi ini. Jika berkenan, silakan Anda baca, karena ini merupakan informasi penting.

Informasi Lisensi Git
Setelah itu, silakan tentukan destinasi untuk instalasi aplikasi Git, jika Anda menghendaki default, maka lanjutkan saja dengan klik next.

Destinasi Aplikasi Git
Selanjutnya adalah pilihan komponen, secara default icon di desktop tidak terpilih, dikarenakan frekuensi penggunaan github sangat sering, jadi saya pilih untuk tambahan icon di desktop. Default Git menyediakan komponen Git Bash dan Git GUI yang terintegrasi dengan Windows Explorer, sehingga memungkinkan kita untuk membuka aplikasi ini di directory manapun dengan cara klik kanan.

Komponen Git
Selanjutnya saya mengikuti pengaturan default untuk shortcut Git di Start Menu Windows.

Shortcut Git di Start Menu
Selanjutnya adalah pengaturan PATH environment, yang mana secara default pengaturan Git mengacu pada Windows Command Prompt.
Use Git from the Windows Command Prompt
Opsi ini dianggap aman karena menggunakan Unix tools untuk meminimalkan penambahan Git wrapper di PATH Anda, tujuannya agar tidak terjadi kekacauan environment pada platform Anda. Pilihan ini memungkinkan Anda untuk menggunakan Git baik dari Git Bash maupun CMD Windows.
Use Git from Git Bash only
Pilihan ini adalah yang paling aman, karena PATH Anda tidak akan diubah oleh sistem git sama sekali. Tapi Anda hanya bisa menggunakan perintah Git via Git Bash. (tidak disediakan di CMD Windows).
Use git and optional Unix tools from the Windows Command Prompt
Saya TIDAK menyarankan Anda untuk menggunakan pengaturan ini, karena saya sendiri belum cukup mengetahui implikasi yang bisa ditimbulkan.

Pengaturan PATH untuk Git
Selanjutnya adalah konfigurasi line ending, yaitu bagaimana seharusnya Git memperlakukan line ending dalam file text?
Checkout Windows-style, commit Unix-style line endings
Git akan mengkonversi LF ke CRLF ketika memeriksa file text. Ketika committing text files, CRLF akan dikonversi ke LF. Untuk proyek lintas-platform, ini adalah pengaturan yang direkomendasikan bagi pengguna WINDOWS ("core.autocrlf" is set to "true").
Checkout as-is, commit Unix-style line endings
Git tidak akan mengkonversi setiap saat memeriksa file text. Ketika committing file text, CRLF akan dikonversi ke LF. Untuk proyek lintas-platform, ini adalah pengaturan yang direkomendasikan bagi pengguna UNIX. ("core.autocrlf" is set to "input").
Checkout as-is, commit as-is
Git tidak akan mengkonversi setiap saat memeriksa maupun saat committing files text. Opsi ini tidak dianjurkan bagi pengembang proyek lintas-platform. ("core.autocrlf" is set to "false").

Konfigurasi Line Ending Conversions Git
Selanjutnya adalah konfigurasi terminal emulator untuk digunakan bersama Git Bash. Dalam hal ini saya masih menggunakan pengaturan default Git, yaitu menggunakan Min TTY.
Use MinTTY (the default terminal of MSYS2)
Git Bash akan menggunakan MinTTY sebagai terminal emulator, yang akan mengolah ukuran jendela program, non-rectangular selections dan Unicode font. Jendela program console (seperti interaktif Python) mush dilaunching via 'winpty' untuk bekerja di MinTTY.
Use windows' default console window
Git akan menggunakan jendela default bawaan Windows ("cmd.exe"), yang telah bekerja dengan baik bersama dengan console interaktif Win32 seperti Python atau node.js, namun memiliki scroll-back yang terbatas (default bawaannya). Memerlukan sedikit konfigurasi untuk bisa menggunakan font Unicode dan menampilkan karakter non-ASCII dengan benar.

Konfigurasi Terminal Emulator Git
Selanjutnya adalah Konfigurasi Extra, dalam hal ini saya masih mengikuti pengaturan default seperti tampak pada gambar di bawah ini.
Enable file system caching
File system data akan dibaca dalam jumlah besar dan cached in memory untuk operasi tertentu ("core.fscache" is set to "ture"). Hal ini akan memberikan peningkatan kinerja cukup signifikan.
Enable Git Credential Manager
The Git Credential Manager untuk Windows akan memberikan secure Git credential storage khusus untuk Windows, terutama dukungan otentikasi multi-factor untuk Visual Studio Team Services dan GitHub. (requeres .NET framework v4.5.1 or later).
Enable sysmbolic links
Mengaktifkan symbolic links (memerlukan izin SeCratesymbolicLink). Harap dicatat, bahwa repository yang ada tidak akan terpengaruh oleh pengaturan ini.

Konfigurasi Ekstra - Git
Selanjutnya adalah pilihan konfigurasi experimental, yang menawarkan fitur bleeding-edge, sampai sejauh ini saya masih mengikuti pengaturan default, yaitu disable fitur ini, seperti tampak pada gambar di bawah ini.
Enable experimental, builtin difftool
Menggunakan experimental builtin difftool (berasa cepat hanya pada saat pengujian).

Konfigurasi Experimental Git
Terakhir, klik install dan tunggu sampai proses instalasi selesai, sehingga icon git tampil di desktop Anda dan siap digunakan.

Proses Instalasi Git
8. Cara mengirim pekerjaan / project ke repository
Berukut adalah beberapa tahapan untuk mengirim project / pekerjaan ke cloud repository:
8.1 Clone Repository
Pertama. Kita clone terlebih dahulu repository yang ada diserver GitHub ke lokal PC, dengan cara klik tanda plus di bilah kiri atas >> pilih menu clone >> pilih CI_CRUD >> klik Clone CI_CRUD

Clone repository via GitHub GUI
Lalu kita diminta menentukan destinasi repository di local PC, dan saya akan menaruhnya di folder wamp\www

Sukses cloning repository ke lokal PC
Jika proses cloning berhasil, maka Anda akan mendapati folder baru beserta README bawaan repository di server GitHub.
Selanjutnya kita tinggal tambahkan saja projectnya di folder tersebut.

Project telah disiapkan
8.2 Commit project
Anda juga bisa melihat perubahannya di aplikasi GitHub, Anda juga bisa menambahkan keterangan tentang projectnya (optional), seperti tampak di bawah ini;

Project telah disiapkan
Berikutnya klik commit to master, tunggu sampai proses selesai. Jika sukses, maka Anda akan melihat perubahannya seperti di bawah ini. Perhatikan tanda lingkaran biru di bilah kanan atas, ini menandakan status perjalanan project, jika lingkaran biru berlubang maka masih dilokal, jika lingkaran biru full maka sudah sinkron antara lokal pc dengan yang di cloud / server GitHub.

Project siap di push / diunggah
8.3 Synchronize / Push ke cloud repository
Langkah terakhir, klik Sync untuk melakukan sinkronisasi / push / unggah by remote, tunggu sampai proses selesai. Jika selesai, Anda bisa perhatikan indikator lingkaran birunya, dan cek repository yang ada di server GitHub.

Selamat! repository Anda memiliki project