Categories
Development Tools

Git Untuk Kawalan Versi Dan Pengurusan Source Code – Bahagian 1

2color-lightbgApa itu Git?

Git adalah satu aplikasi open source yang digunakan untuk membantu kita menyemak setiap perubahan yang kita buat pada kod. Dengan Git, setiap perubahan pada kod boleh direkodkan dan disemak, malah keluarkan kembali sekiranya kita membuat kesilapan pada kod semasa. Ciri seperti ini sebenarnya amat penting bagi seorang pembangun web mahupun apa jua programmer bagi memastikan kelangsungan kerja.

Mungkin secara tidak sedar, walaupun tak pernah menggunakan Git, kita memang ada mengambil langkah-langkah berjaga bila menulis kod. Apabila kita sudah tiba pada satu situasi yang selesa, dan kemudian perlu menyambung menulis kod, mungkin kita akan membuat salinan baru dan menyimpan kod sedia ada sebagai backup. Sekiranya kerja-kerja baru merosakkan aplikasi, kita masih ada backup kita untuk memulakan kerja semula.

Itu adalah antara yang Git boleh bantu, malah lebih lagi.

Dengan Git, kita tidak perlu untuk membuat salinan dan backup, menyimpan pelbagai folder, malah mungkin beberapa versi fail yang sama seperti login.php, login001.php, login002-bak.php dan sebagainya.

Semua ini amat mudah dengan Git.

Mula Koding Bersama Git

Untuk permulaan, elok saya beritahu di mana kita boleh dapat Git. Anda boleh dapatkan Git untuk sistem operasi anda dari pautan di bawah ini:

http://git-scm.com/

Git secara dasarnya berfungsi dengan command-line. Pernah tak awak melihat konsol MS-DOS atau mungkin Terminal di Linux? Itulah command-line. Secara dasarnya anda perlukan itu dan semua arahan untuk Git perlu ditaip satu persatu. Tetapi terdapat juga aplikasi GUI untuk Windows, Mac dan Linux bagi memudahkan kerja-kerja Git. Tapi kita perlu download dan pasangkan Git asas dahulu. Elok saya maklumkan, tutorial ini dibuat dalam persekitaran Windows.

Sekiranya awak sudah download dan memasang Git, cuba cari “git bash” menggunakan fungsi Carian program apabila menekan Start button dalam Windows. Melancarkan Git Bash, anda patut mendapat antaramuka command-line seperti ini.

windows-gitbash

Pertama sekali, kita perlu tahu di mana kita berada di dalam command-line ini. Biasanya kita akan berada di C:\Users\. Kita boleh mengenalpasti dengan menulis arahan berikut di dalam command-line.

$ pwd

Ini akan memberikan respon lebih kurang sebegini.

/c/Users/Acer

Ini bermakna anda sedang berada di C:\Users\Acer. Mari kita buat satu folder baru bernama “belajar-git”. Awak boleh masukkan arahan berikut ke Git Bash dan ianya akan membina folder baru.

$ mkdir belajar-git
$ cd belajar-git

Selepas arahan cd, kita sepatutnya berada di dalam folder “C:\Users\Acer\belajar-git”. Anda boleh menggunakan File Explore di dalam Windows dan pergi ke folder tersebut. Mungkin ianya kelihatan seperti ini. Hanya sebuah folder kosong.

windows-folder

Kembali ke command-line Git Bash. Masukkan arahan ini untuk memulakan satu projek Git yang baru. Apabila anda menulis arahan di bawah ini, sebarang perubahan di dalam folder mula diperhatikan oleh Git.

$ git init

Sekarang mari kita buat fail baru. Buka Notepad dan tuliskan seperti berikut.


   
      Belajar Git
   
   
      

Belajar Git - Ini versi 1

Simpan fail ini sebagai index.html di dalam folder belajar-git tadi.

Sekarang kembali ke command-line Git Bash. Taip arahan berikut. Ianya memberitahu Git yang kita mahu ianya memerhatikan semua fail dalam folder untuk sebarang perubahan. Dan kemudian itu, kita mengarahkan Git untuk merekodkan keadaan kod pada masa dan ketika ini.

$ git add .
$ git commit -m "commit pertama, versi 1"

Anda sepatutnya mendapat respon sebegini:

[master (root-commit) 3c56c81] commit pertama, versi 1
 1 file changed, 8 insertions(+)
 create mode 100644 index.html

OK, apa kata kita menambah lagi beberapa kod di dalam fail HTML kita. Tambahkan satu baris baru di antara baris ke-6 dan ke-7. Baris ini akan menjadi baris ke-7 yang baru. Fail baru kita akan kelihatan seperti ini.


   
      Belajar Git
   
   
      

Belajar Git - Ini versi 1

Tambahan untuk commit kedua, versi 1

Dan sekarang kita kembali ke command-line Git Bash dan lakukan commit sekali lagi.

$ git add .
$ git commit -m "commit kedua, versi 1"

Anda sepatut mendapat respon sebegini.

[master 49c0d64] commit kedua, versi 1
 1 file changed, 1 insertions(+)

Sekarang apa kata kita lihat fail ini di dalam browser pula? Saya akan gunakan Google Chrome. Ianya sepatutnya kelihatan sebegini.

chrome
index.html dengan hasil yang terkini, commit kedua

Sekarang mari kita lakukan sesuatu yang lebih istimewa. Di sinilah magik Git bermula. Masukkan arahan tersebut di dalam command-line Git Bash.

$ git log

Anda sepatutnya mendapat sesuatu seperti ini. Ianya menyenaraikan aktiviti Git setakat waktu semasa.

commit 49c0d64cbc1975d8190cb9b848eee461d0dc73e2
Author: Administrator 
Date:   Tue Jul 9 22:12:28 2013 +0800

    commit kedua, versi 1

commit 3c56c817f1f4f07d09d31cc3768e079b1b904700
Author: Administrator 
Date:   Tue Jul 9 22:04:29 2013 +0800

    commit pertama, versi 1

Di situ ada boleh lihat commit yang telah dilakukan dengan IDnya (ya, yang panjang lebar itu) dan maklumat ringkas tentangnya. Sekarang, andaikan kita mahu pergi semula ke kod ketika commit pertama, kita boleh gunakan kod seperti ini.

Perhatian: Awak kena tuliskan kod seperti mana yang tertera di skrin awak ketika menulis arahan git log. Ini contoh di komputer saya. Awak mungkin mendapat kod ID yang berbeza.

$ git checkout 3c56c817f1f4f07d09d31cc3768e079b1b904700

Sekarang kita pergi semula ke Chrome dan refresh laman tersebut. Anda sepatutnya mendapat sesuatu yang sebegini.

Kelihatan di Chrome setelah git checkout
Kelihatan di Chrome setelah git checkout

Nampak tak? Tulisan pada baris kedua telah hilang. Ini kerana kita belum pernah menulis baris kedua itu bila kita buat commit pertama tadi. Kita boleh kembali ke commit kedua dengan menulis arahan checkout sekali lagi, tapi untuk commit kedua pula.

$ git checkout 49c0d64cbc1975d8190cb9b848eee461d0dc73e2

Sekarang cuba refresh kembali Chrome awak. Nampak apa? Ajaib tak?

Di ketika ini, mungkin rasanya agak leceh dengan nombor commit ID yang panjang berjela ni. Ada cara yang lebih mudah. Tetapi cukuplah untuk kali ini. Kita sembang lagi cerita Git di bahagian kedua nanti.

Sebarang pertanyaan, maklumbalas, dialu-alukan.

7 replies on “Git Untuk Kawalan Versi Dan Pengurusan Source Code – Bahagian 1”

Yep. Memang itu cadangnya. Tapi untuk memudahkan kerja, saya akan perkenalkan klien GUI.

Menarik. Satu soalan dari saya, jika kita ubah folder yang kita set-up pada bahagian awal tersebut ke directory lain/local disk lain, adakah fungsi ‘checkout’ ini masih berfungsi?

Adakah ianya seperti web cache di mana jika kita clearkan browser cache atau menggunakan perisian seperti CCleaner, log yang ada akan turut hilang?

Saya pun masih belajar2. Jadi kalau ada yang baca dan tahu ini salah, tolong betulkan.

Sefaham saya, maklumat Git disimpan dalam folder /.git di dalam folder projek tersebut. Jadi kalau kita salin folder projek dan simpan di tempat lain, maklumat Git masih ada. Maka kita masih boleh membuat operasi Git di dalam folder projek salinan sama seperti di folder projek asal. Samalah juga kalau kita salin ke dalam drive lain, atau komputer lain sekali pun.

Baru saya cuba tadi untuk disahkan, walaupun sudah disalin ke folder lain, saya masih boleh checkout ke commit-commit yang dibuat semasa di folder projek asal. Hanya untuk peringatan, kerja-kerja di folder salinanan tidak ada kena mengena dan tidak akan mengubah apa-apa di folder projek asal. Ianya bagai sebuah projek berasingan.

Leave a Reply