Anda di halaman 1dari 9

Pendahuluan

Tentang Version Control

Version Control adalah sebuah aplikasi yang mampu mengelola perubahan terhadap file. Dia mencatat perubahan apa saja yang terjadi, kapan terjadi, siapa yang
mengubah, dan apa isi perubahannya. Dengan menggunakan version control, file dapat dikerjakan secara bersamaan oleh lebih dari satu orang dengan aman. Ini
merupakan fitur yang esensial dalam kegiatan pembangunan aplikasi perangkat lunak atau pemrograman.

Ada dua jenis version control, terpusat (centralized) dan terdistribusi (distributed). Version control terpusat memiliki satu database (atau dikenal dengan istilah
repository) yang digunakan oleh banyak orang. Salah satu aplikasi version control terpusat yang terkenal adalah Subversion.

Version control terdistribusi memiliki satu repository untuk masing-masing pengguna. Repository ini berdiri sendiri, tapi bisa disinkronisasikan antar pengguna
dengan berbagai metode. Aplikasi version control terdistribusi yang terkenal antara lain adalah Git dan Mercurial.

Tentang Git
Git diciptakan oleh Linus Torvalds. Ya, Anda benar, Linus Torvalds yang itu. Si pembuat Linux.

Alkisah pada jaman dahulu kala, Linus tidak menggunakan version control sama sekali. Dia menerima kontribusi kode program dalam bentuk email. Email berisi
potongan kode (patch) ini lalu diintegrasikannya ke kode programnya sendiri. Begitu seterusnya sehingga sistem operasi Linux memiliki banyak fitur yang sebagian
besarnya adalah sumbangan orang lain.

Seiring dengan makin bertambahnya kontributor Linux, Linus pun merasa kewalahan dalam memproses email yang masuk. Ini mengakibatkan perkembangan sistem
operasi Linux menjadi lambat, dibatasi oleh kecepatan Linus membuka emailnya. Pada saat yang genting ini, datanglah Larry McVoy menawarkan dagangannya, yaitu
BitKeeper.

Rupanya BitKeeper ini sesuai dengan cara kerja Linus, sehingga diapun dengan gembira memakainya. Apalagi dengan diiming-imingi fasilitas gratis iuran tahunan,
tidak kalah dengan penawaran kartu kredit di mal. Dengan segera, BitKeeper menjadi version control resmi dalam kegiatan pengembangan Linux.

Walaupun demikian, kemesraan ini tidak berlangsung lama. Andrew Tridgell, salah satu kontributor Linux dan pembuat aplikasi Samba, mencoba mendownload isi
repository BitKeeper. Hal ini membuat Larry McVoy marah dan menghentikan fasilitas gratis iuran tahunan penggunaan BitKeeper. Bahkan beberapa kontributor,
khususnya yang berstatus karyawan OSDL, tidak diperbolehkan membeli lisensinya. Jangankan gratis, bayar saja tidak boleh.

Menghadapi kondisi ini, akhirnya Linus Torvalds memutuskan untuk membuat sendiri aplikasi version control. Hasilnya adalah Git.

Tentang Buku Git

Mengapa buku ini ditulis

Penggunaan version control adalah langkah pertama menuju software engineering yang baik dan benar. Sebuah tim yang membuat aplikasi perangkat lunak tidak
akan bisa bekerja sama dengan lancar tanpa version control. Sayangnya, referensi yang membahas version control dalam bahasa Indonesia masih sangat minim.
Dengan adanya buku ini, mudah-mudahan bisa meningkatkan efektifitas para programmer Indonesia sehingga bisa berdiri setara dengan koleganya di dunia
internasional.

Siapa yang sebaiknya membaca

Buku ini ditujukan bagi mereka yang ingin menggunakan version control. Pengguna terbesar version control biasanya adalah programmer. Walaupun demikian,
version control dapat digunakan untuk mengelola segala macam file, sehingga bisa juga digunakan oleh non-programmer.

Untuk bisa memahami buku ini tidak dibutuhkan pengetahuan khusus kecuali dasar penggunaan komputer biasa saja. Pembaca harus mahir membuat folder dan
mengedit file teks.

Bagaimana urutan membacanya

Buku ini dibagi menjadi tiga bagian, yaitu:

penggunaan harian
manajemen proyek dan tim
administrasi sistem

Bagian pertama berisi cara menggunakan Git. Dengan menguasai bagian pertama ini, kita sudah bisa bekerja secara produktif baik sendirian maupun dalam tim.
Bukan hanya teknik dasar, di bagian ini juga dibahas teknik tingkat tinggi seperti branch, merge, rebase, dan lainnya. Kita juga akan belajar cara penggunaan remote
repository di sini.

Jika Anda seorang team leader atau manajer, Anda perlu mendefinisikan prosedur kerja tim supaya anggota tim Anda bisa bekerja sama dengan efektif. Di bagian
kedua, kita akan melihat bagaimana Git digunakan untuk membuat kerja tim menjadi lebih efektif dan efisien. Dengan membahas beberapa studi kasus, kita akan
memahami bagaimana mendayagunakan Git secara maksimal.

Agar tim kita bisa menggunakan Git tentu kita harus menyediakan infrastrukturnya. Cara instalasi server, konfigurasi akses kontrol, backup dan restore, semua akan
dibahas di bagian ketiga. Di bagian ini juga dibahas beberapa perangkat pelengkap lain untuk meningkatkan efektifitas dan efisiensi kerja tim.

Sebagian besar isi bagian ketiga membahas tentang instalasi dan konfigurasi server. Oleh karena itu, pengetahuan mendalam tentang Linux dan jaringan sangat
dibutuhkan untuk menguasai bagian ketiga ini.

Format penulisan

Agar lebih enak dibaca, kita akan membedakan bentuk dan warna tulisan sebagai berikut. Perintah yang kita berikan pada komputer ditulis seperti ini.

git --version
Hasil yang ditampilkan komputer ditulis seperti ini.

git version 1.7.4.1

Catatan khusus. Seringkali ada hal penting yang perlu mendapat perhatian khusus. Ini ditulis di menjorok ke tengah seperti contoh berikut.

Note

Working folder Git mengandung repository lengkap mulai dari revisi pertama sampai terbaru.

Berikut contoh kode program HTML.

<html>
<head>
<title>Halo Dunia</title>
</head>
<body>
<h1>Halo Dunia</h1>
</body>
</html>

Dan ini cara penulisan file konfigurasi

# Ignore file eclipse


.settings
.metadata
.project
.classpath
bin

# Ignore hasil kompilasi Maven


target

Lisensi

Buku ini memiliki lisensi Creative Commons Attribution Share Alike (CC-BY-SA). Artinya, semua orang:

bebas menggunakan buku ini tanpa harus membayar, baik untuk keperluan non-profit maupun komersil. Anda boleh membuka pelatihan berbayar
menggunakan buku ini.
bebas membagikan buku ini kepada siapa saja.
bebas membuat perubahan terhadap isi buku ini.

Semua kebebasan di atas hanya memiliki syarat yaitu tetap harus menyebutkan nama pengarang yang aslinya. Ini disebut dengan istilah attribution. Singkatnya, boleh
dipakai dan dibagikan asal jangan diakui sebagai karya sendiri. Selain itu, segala perubahan yang dibuat juga harus dilisensikan sama dengan buku ini. Ini disebut
dengan istilah Share-Alike. Lebih lanjut tentang lisensi ini bisa dilihat di website Creative Commons

Tools
Buku ini dibuat menggunakan perangkat pembantu :

Markdown : format text untuk menulis buku


Pandoc : aplikasi untuk mengkonversi markdown menjadi PDF atau HTML

Kontribusi

Semua orang boleh dan dianjurkan untuk ikut membantu penulisan buku ini. Bagaimana caranya? Gampang. Ada beberapa pekerjaan yang dapat dilakukan.

Reviewer

Tugasnya adalah memeriksa isi buku dan memberikan koreksi. Apa saja boleh dikoreksi, mulai dari tanda baca, salah ketik, contoh latihan tidak bisa dijalankan, apa
saja. Kalau ada penjelasan yang kurang jelas juga boleh dikomentari. Apapun yang bisa membuat buku ini lebih baik. Hasil review dapat dientri di halaman Issue di
Github.

Penulis

Bagus sekali kalau Anda ingin menyumbangkan tulisan. Lebih banyak yang mencerdaskan bangsa lebih baik. Begini caranya. Sebagai penulis buku Git, tentu Anda
sudah paham cara menggunakan Git, dan juga kemungkinan besar sudah punya account di Github. Langsung saja fork repository buku-git ini dan segeralah berkarya.
Begitu dirasa sudah memadai, kirimkan pull request ke saya. Nanti akan saya merge ke repository saya.
Instalasi Git
Instalasi Git di Windows

Installer Git di Windows dibuatkan oleh MSysGit, yang bisa diunduh di websitenya. Unduhlah file yang nama depannya Git, contohnya seperti ini: Git-1.7.3.1-
preview20101002.exe. Ambil saja versi yang terbaru. Setelah diunduh, kita bisa langsung jalankan. Berikut panduan screen demi screen.

Screen pertama adalah welcome. Welcome to Git Setup Wizard Langsung saja klik Next.

Di screen berikutnya, kita perlu mengganti opsinya karena berbeda dengan setting standar yang ditawarkan. Berikut posisi opsi yang seharusnya. Windows Explorer
Integration Path Setting Screen terakhir biarkan saja seperti yang disarankan. Ini gunanya untuk mengatasi perbedaan karakter ganti baris di Windows (CRLF) dan
Linux (LF saja) Line Endings

Setelah selesai, kita bisa test dengan membuka command prompt dan mengetik perintah

git

Kalau instalasi berjalan lancar, maka akan muncul output dari git sebagai berikut.

usage: git [--version] [--exec-path[=<path>]] [--html-path]


[-p|--paginate|--no-pager] [--no-replace-objects]
[--bare] [--git-dir=<path>] [--work-tree=<path>]
[-c name=value] [--help]
<command> [<args>]

The most commonly used git commands are:


add Add file contents to the index
bisect Find by binary search the change that introduced a bug
branch List, create, or delete branches
checkout Checkout a branch or paths to the working tree
clone Clone a repository into a new directory
commit Record changes to the repository
diff Show changes between commits, commit and working tree, etc
fetch Download objects and refs from another repository
grep Print lines matching a pattern
init Create an empty git repository or reinitialize an existing one
log Show commit logs
merge Join two or more development histories together
mv Move or rename a file, a directory, or a symlink
pull Fetch from and merge with another repository or a local branch
push Update remote refs along with associated objects
rebase Forward-port local commits to the updated upstream head
reset Reset current HEAD to the specified state
rm Remove files from the working tree and from the index
show Show various types of objects
status Show the working tree status
tag Create, list, delete or verify a tag object signed with GPG

See 'git help <command>' for more information on a specific command.

Instalasi Git di Ubuntu


Untuk instalasi di Ubuntu, kita perlu menginstal paket-paket berikut :

git-core
gitg

Kalau menggunakan command prompt, berikut perintahnya

sudo apt-get install git-core gitg

Setelah selesai, kita bisa test dengan membuka command prompt dan mengetik perintah git . Kalau instalasi berjalan lancar, maka akan muncul output dari git
sebagai berikut.
usage: git [--version] [--exec-path[=<path>]] [--html-path]
[-p|--paginate|--no-pager] [--no-replace-objects]
[--bare] [--git-dir=<path>] [--work-tree=<path>]
[-c name=value] [--help]
<command> [<args>]

The most commonly used git commands are:


add Add file contents to the index
bisect Find by binary search the change that introduced a bug
branch List, create, or delete branches
checkout Checkout a branch or paths to the working tree
clone Clone a repository into a new directory
commit Record changes to the repository
diff Show changes between commits, commit and working tree, etc
fetch Download objects and refs from another repository
grep Print lines matching a pattern
init Create an empty git repository or reinitialize an existing one
log Show commit logs
merge Join two or more development histories together
mv Move or rename a file, a directory, or a symlink
pull Fetch from and merge with another repository or a local branch
push Update remote refs along with associated objects
rebase Forward-port local commits to the updated upstream head
reset Reset current HEAD to the specified state
rm Remove files from the working tree and from the index
show Show various types of objects
status Show the working tree status
tag Create, list, delete or verify a tag object signed with GPG

See 'git help <command>' for more information on a specific command.

Instalasi Git di Mac


TODO

Instalasi Tortoise Git

Tortoise Git adalah antarmuka Git yang terintegrasi dengan Windows Explorer. Dengan menggunakan TortoiseGit, kita bisa menggunakan fitur Git dengan
menggunakan klik kanan di Windows Explorer.

Install TortoiseGit bisa didapatkan di websitenya. Ambil saja versi terbaru. Setelah itu, klik Next beberapa kali hingga selesai. Tidak ada opsi yang diubah, ikuti saja
setting yang dianjurkan.

Welcome Screen Pilihan SSH Client

Setelah selesai instalasi, kita bisa langsung menggunakan TortoiseGit. Sebaiknya Windowsnya direstart dulu, kalau tidak biasanya ada masalah dengan pewarnaan
icon.

Buka Windows Explorer, di sana ada menu tambahan yang disediakan oleh TortoiseGit, salah satunya adalah clone. Klik Kanan ada menu Clone Kalau kita klik clone,
kita akan dimintai alamat repository yang ingin kita clone. Informasi Clone Pada waktu pertama kali terkoneksi dengan server Git, biasanya kita akan ditanyai apakah
kita ingin menyimpan SSH key dari server tersebut. Save host key, pertama kali connect Setelah kita lanjutkan dan tidak ada masalah dengan jaringan ataupun
permission, clone akan selesai dengan baik. Clone selesai Dengan demikian, TortoiseGit telah terinstal dengan sukses. Untuk selanjutnya, operasi Git akan dijelaskan
melalui command line. Bila command line dipahami, menggunakan TortoiseGit juga tidak akan sulit.

Konfigurasi Awal
Konfigurasi utama yang harus kita lakukan adalah mendaftarkan nama dan email kita. Nama dan email ini akan digunakan untuk mencatat siapa yang membuat
perubahan di repository.

Konfigurasi username dan email dilakukan melalui perintah git config sebagai berikut:

git config user.name "Endy Muhardin"

git config user.email endy.muhardin@gmail.com

Hasilnya bisa kita lihat menggunakan perintah git config --list . Berikut contohnya:

git config --list


user.name=Endy Muhardin
user.email=endy.muhardin@gmail.com

Selain username dan email, buat kita yang sering menggunakan commandline, perlu juga untuk mengaktifkan pewarnaan.

git config color.ui true

Konfigurasi user dan email di atas hanya berlaku di satu repository saja. Bila kita membuat repository lain, kita harus melakukan konfigurasi tersebut lagi. Bila kita
menggunakan komputer dengan username pribadi (bukan komputer umum seperti di warnet atau di lab komputer) kita tentu ingin sekali konfigurasi berlaku untuk
semua repository. Untuk itu, kita bisa menggunakan opsi --global seperti contoh berikut :

git config --global user.name "Endy Muhardin"

Bagi pengguna TortoiseGit, konfigurasi dilakukan menggunakan klik kanan. Settings Menu Setelah itu, pilih menu Config di tab kiri. Konfigurasi username dan email
Di sana juga disediakan tombol untuk memberlakukan konfigurasi secara local atau global.
Penggunaan Git Sehari-hari
Istilah dalam Git

Sepanjang buku ini, kita akan banyak menemui istilah-istilah baru. Jangan khawatir bila istilah yang dijelaskan di sini belum bisa dipahami. Seiring dengan
pemahaman yang semakin meningkat, istilah-istilah ini akan semakin masuk akal.

repository : database yang menyimpan history/ riwayat perubahan


snapshot : potret kondisi file dan folder pada saat tertentu
commit : snapshot yang disimpan di repository
branch : serangkaian commit yang berkaitan sehingga kalau digambar seperti garis lurus berisi banyak commit. Satu repository bisa berisi banyak branch.
master : nama branch default yang diberikan git pada waktu kita membuat repository. Branch master ini tidak istimewa. Dia bisa dihapus dan direname sesuka
hati.
head : ujung branch, commit terbaru di dalam branch
HEAD : head yang sedang aktif. Walaupun satu repository bisa memiliki banyak branch, tapi cuma satu yang aktif.
working folder : folder berisi file dan folder tempat kita bekerja. Biasanya working folder berisi banyak file source code untuk aplikasi yang sedang kita buat. Git
memantau working folder ini, dan bisa mengetahui file dan folder mana yang sudah berbeda dari posisi commit terakhir. Perbedaan atau perubahan ini bisa
disimpan menjadi commit baru, atau dikembalikan ke kondisi sebelum diubah.
staging area : snapshot dari working folder yang akan kita simpan pada saat commit. Ini adalah fitur unik Git yang tidak dimiliki version control lain. Dengan
adanya staging area, kita bisa memilih perubahan mana yang akan di-commit dan mana yang tidak.
object store : ini adalah database tempat semua commit disimpan.

Membuat repository baru


Untuk membuat repository, kita jalankan perintah git init di dalam folder kosong.

git init

Initialized empty Git repository in /home/endy/tmp/latihan-git/.git/

Dengan demikian, kita telah membuat database untuk menyimpan revision di folder tersebut. Database ini dikenal dengan istilah repository.

Repository git berupa hidden folder bernama .git. Karena hidden, mungkin saja tidak terlihat, sehingga kita harus memodifikasi opsi di Windows Explorer, Nautilus,
atau aplikasi file manager yang kita gunakan agar menampilkan hidden file/folder.

Repository yang baru saja kita buat dapat digunakan untuk bekerja (memiliki working folder). Ada kalanya kita membuat repository untuk ditaruh di server dan tidak
diakses langsung. Repository ini disebut bare . Untuk membuatnya, jalankan git init dengan opsi --bare seperti ini.

git init --bare

Initialized empty Git repository in /home/endy/tmp/latihan-git/

Berbeda dengan repository dengan working folder, repository bare tidak memiliki hidden folder .git . Folder-folder yang digunakan git untuk menyimpan datanya
langsung digelar di folder repository bare tersebut.

Mengunduh sebuah repo

Untuk mengunduh sebuah repo anda cukup melakukan : git clone (alamat repository,misal https://github.com/endymuhardin/buku-git.git)

Working, Staging, dan Commit

Melihat status working folder

Memasukkan perubahan ke staging area

Menyimpan isi staging area ke commit area

Melihat history perubahan

Membandingkan antar versi

Pergi ke masa lalu

Paralel Development dengan Branch

Diff dan Patch


Remote Repository

Tips dan Tricks


Beberapa tips dan triks dapat membuat pengalaman Git Anda lebih sederhana, mudah, atau bahkan akrab. Banyak orang menggunakan Git tanpa menggunakan tip-
tip berikut ini, dan kami tidak akan merujuk kepada mereka atau mengasumsikan bahwa Anda telah menggunakannya nanti dalam buku ini; tetapi Anda mungkin
sebaiknya mengetahui bagaimana menggunakannya.

Auto-Completion

Jika Anda menggunakan Bash shell, Git tersedia dengan sebuah script auto-completion yang dapat Anda hidupkan. Unduh source-code Git, dan cari direktori
contrib/completion ; di sana Anda akan menemukan berkas bernama git-completion.bash. Salin berkas ini ke direktori home Anda, dan tambahakn ini ke dalam
berkas .bashrc :

`source ~/.git-completion.bash`

Jika Anda ingin memasang Git agar secara otomatis menggunakan fitur ini bagi semua pengguna, salin script tadi ke direktori
/opt/local/etc/bash_completion.d di sistem Mac atau ke direktori /etc/bash_completion.d/ di sistem Linux. Ini adalah direktori tempat script yang akan
secara otomatis dibaca oleh Bash untuk menyediakan fitur auto-complete nya.

Jika Anda menggunakan Windows dengan Git Bash, yang sebetulnya adalah setting default ketika instalasi Git di Windows menggunakan msysGit, fitur ini
seharusnya sudah terkonfigurasi.

Pencet huruf Tab ketika Anda menuliskan perintah Git, dan Bash akan menampilkan beberapa kemungkinan yang Anda dapat pilih:

$ git co<tab><tab> commit config

Dalam hal ini, mengetikkan git co dan memencet kunci Tab 2x akan menampilkan pilihan commit dan config. Dengan menambahkan m<tab> akan melengkapi git
commit secara otomatis.

Hal ini juga bekerja terhadap opsi, yang mungkin lebih berguna. Sebagai contoh, jika Anda menjalankan perintah git log dan tidak ingat salah satu dari opsi yang
tersedia, Anda dapat mulai mengetikkannya dan memencet Tab untuk melihat apa yang cocok:

$ git log --s<tab> --shortstat --since= --src-prefix= --stat --summary

Ini adalah trick yang cukup menarik dan dapat menghemat waktu Anda dan waktu membaca dokumentasi.
Kerja Tim dengan Git
Shared Repository Workflow

Individual Repository Workflow

Kebijakan Branch

Kebijakan Merge dan Rebase

Studi Kasus : Multi Stage Release


Pada studi kasus ini, kita akan melihat cara melakukan rilis aplikasi secara bertahap, yaitu dari programmer, masuk ke internal tester, kemudian ke user tester (UAT),
dan rilis ke production. Ini adalah prosedur rilis yang lazim digunakan di banyak perusahaan software development.

Studi Kasus : Multi Customer


Pada studi kasus ini, kita akan melihat cara mengelola varian produk berdasarkan customer. Hal ini lazim terjadi di perusahaan yang menjual produk aplikasi dimana
aplikasi tersebut bisa dikustomisasi sesuai keinginan customer.

Studi Kasus : Aplikasi Open Source


Pada studi kasus ini, kita akan melihat cara mengelola pengembangan aplikasi open source. Model pengembangan ini unik karena kontributornya bisa datang dari
mana saja dengan aktivitas kontribusi yang beragam pula. Ada yang rajin mengirim kontribusi, ada yang frekuensi kontribusinya jarang, dan ada juga yang hanya
mengirim sekali saja setelah itu menghilang.
Administrasi Sistem Git
Membuat Git Server

Integrasi dengan Redmine

Integrasi dengan Jenkins

Anda mungkin juga menyukai