Seri Manajemen Proyek Software
Konsep dan Penggunaan Git Menggunakan Git dalam Proyek Pengembangan Perangkat Lunak
Last Updated:
Version: 1.9
5 September 2012
© 2013 ArtiVisi Intermedia
Konsep dan Penggunaan Git Endy Muhardin 5 September 2012
Konsep dan Penggunaan Git
Contents
Contents 1 Pendahuluan
1
1.1 Tentang Version Control . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2 Tentang Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.3 Tentang Buku Git . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.3.1 Mengapa buku ini ditulis . . . . . . . . . . . . . . . . . . . . .
2
1.3.2 Siapa yang sebaiknya membaca . . . . . . . . . . . . . . . . .
2
1.3.3 Bagaimana urutan membacanya . . . . . . . . . . . . . . . . .
2
1.3.4 Format penulisan . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.4 Lisensi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.5 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.6 Kontribusi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.6.1 Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.6.2 Penulis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2 Instalasi Git
6
2.1 Instalasi Git di Windows . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2 Instalasi Git di Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.3 Instalasi Git di Mac
. . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.4 Instalasi Tortoise Git . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.5 Konfigurasi Awal
9
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Penggunaan Git Sehari-hari
10
3.1 Istilah dalam Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.2 Membuat repository baru . . . . . . . . . . . . . . . . . . . . . . . .
11
3.3 Working, Staging, dan Commit
. . . . . . . . . . . . . . . . . . . . .
13
3.4 Melihat status working folder . . . . . . . . . . . . . . . . . . . . . .
13
v1.9
Konsep dan Penggunaan Git
Contents
3.5 Memasukkan perubahan ke staging area . . . . . . . . . . . . . . . .
13
3.6 Menyimpan isi staging area ke commit area
. . . . . . . . . . . . . .
13
3.7 Melihat history perubahan . . . . . . . . . . . . . . . . . . . . . . .
13
3.8 Membandingkan antar versi
. . . . . . . . . . . . . . . . . . . . . .
13
3.9 Pergi ke masa lalu . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.10 Paralel Development dengan Branch . . . . . . . . . . . . . . . . . .
13
3.11 Diff dan Patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.12 Remote Repository
13
. . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Kerja Tim dengan Git
13
4.1 Shared Repository Workflow . . . . . . . . . . . . . . . . . . . . . .
13
4.2 Individual Repository Workflow
. . . . . . . . . . . . . . . . . . . .
13
4.3 Kebijakan Branch . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
4.4 Kebijakan Merge dan Rebase . . . . . . . . . . . . . . . . . . . . . .
13
4.5 Studi Kasus : Multi Stage Release . . . . . . . . . . . . . . . . . . . .
13
4.6 Studi Kasus : Multi Customer . . . . . . . . . . . . . . . . . . . . . .
14
4.7 Studi Kasus : Aplikasi Open Source . . . . . . . . . . . . . . . . . . .
14
5 Administrasi Sistem Git
14
5.1 Membuat Git Server . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
5.2 Integrasi dengan Redmine . . . . . . . . . . . . . . . . . . . . . . . .
14
5.3 Integrasi dengan Jenkins
14
v1.9
. . . . . . . . . . . . . . . . . . . . . . . .
Konsep dan Penggunaan Git
1 1.1
1
Pendahuluan
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.
1.2
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 v1.9
1
Konsep dan Penggunaan Git
1
Pendahuluan
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.
1.3 1.3.1
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.
1.3.2
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.
1.3.3
Bagaimana urutan membacanya
Buku ini dibagi menjadi tiga bagian, yaitu: v1.9
2
Konsep dan Penggunaan Git
1
Pendahuluan
• 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.
1.3.4
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. v1.9
3
Konsep dan Penggunaan Git
1
Pendahuluan
Note Working folder Git mengandung repository lengkap mulai dari revisi pertama sampai terbaru. Berikut contoh kode program HTML.
Halo Dunia Halo Dunia
Dan ini cara penulisan file konfigurasi
# Ignore file eclipse .settings .metadata .project .classpath bin # Ignore hasil kompilasi Maven target
1.4
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.
v1.9
4
Konsep dan Penggunaan Git
1
Pendahuluan
• 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
1.5
Tools
Buku ini dibuat menggunakan perangkat pembantu : • Markdown : format text untuk menulis buku • Pandoc : aplikasi untuk mengkonversi markdown menjadi PDF atau HTML
1.6
Kontribusi
Semua orang boleh dan dianjurkan untuk ikut membantu penulisan buku ini. Bagaimana caranya? Gampang. Ada beberapa pekerjaan yang dapat dilakukan.
1.6.1
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.
v1.9
5
Konsep dan Penggunaan Git
1.6.2
2
Instalasi Git
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.
2
Instalasi Git
2.1
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.1preview20101002.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]
[<args>] v1.9
6
Konsep dan Penggunaan Git
2
Instalasi Git
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 ’ for more information on a specific command.
2.2
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 v1.9
7
Konsep dan Penggunaan Git
2
Instalasi Git
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] [<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 ’ for more information on a specific command.
v1.9
8
Konsep dan Penggunaan Git
2.3
2
Instalasi Git
Instalasi Git di Mac
TODO
2.4
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.
2.5
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” v1.9
9
Konsep dan Penggunaan Git
3
Penggunaan Git Sehari-hari
git config user.email [email protected] Hasilnya bisa kita lihat menggunakan perintah git config --list. Berikut contohnya:
git config --list user.name=Endy Muhardin [email protected] 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.
3 3.1
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
v1.9
10
Konsep dan Penggunaan Git
3
Penggunaan Git Sehari-hari
• 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 dicommit dan mana yang tidak. • object store : ini adalah database tempat semua commit disimpan.
3.2
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.
v1.9
11
Konsep dan Penggunaan Git
3
Penggunaan Git Sehari-hari
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.
v1.9
12
Konsep dan Penggunaan Git
4 Kerja Tim dengan Git
3.3
Working, Staging, dan Commit
3.4
Melihat status working folder
3.5
Memasukkan perubahan ke staging area
3.6
Menyimpan isi staging area ke commit area
3.7
Melihat history perubahan
3.8
Membandingkan antar versi
3.9
Pergi ke masa lalu
3.10
Paralel Development dengan Branch
3.11
Diff dan Patch
3.12
Remote Repository
4
Kerja Tim dengan Git
4.1
Shared Repository Workflow
4.2
Individual Repository Workflow
4.3
Kebijakan Branch
4.4
Kebijakan Merge dan Rebase
4.5
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
v1.9
13
Konsep dan Penggunaan Git
5
Administrasi Sistem Git
rilis ke production. Ini adalah prosedur rilis yang lazim digunakan di banyak perusahaan software development.
4.6
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.
4.7
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.
5
Administrasi Sistem Git
5.1
Membuat Git Server
5.2
Integrasi dengan Redmine
5.3
Integrasi dengan Jenkins
v1.9
14