Pengembangan Aplikasi Menggunakan Git (2)

Apakah Git Adalah Version Control Satu-satunya?

Tristia Riskawati
Aug 26, 2017 · 4 min read

oleh: Restu Arif Priyono

Tidak.

Sebelum Git, sudah terlebih dahulu terdapat beberapa version control yang lain, seperti SVN, Mercurial, dan sebagainya. Sesudahnya pun banyak berkembang merk-merk version control yang lain.

Meskipun banyak yang menganggap Git sangat kompleks, namun ketika seseorang sudah terbiasa menggunakannya, mekanisme Git dapat meningkatkan produktivitas dan mengurangi konflik antarpengembang.

Namun, apabila pembaca ingin menggunakan version control yang lebih mudah digunakan dan lebih sederhana, SVN dapat menjadi pilihan yang tepat untuk version control.

Istilah-istilah dalam Penggunaan Git

Git dapat digunakan dengan menggunakan GUI (Graphical User Interface) atau text-based command line. GUI yang sering digunakan oleh para pengembang pada platform Windows adalah Tortoise Git.

Pada dasarnya, setiap perintah yang dilakukan pada GUI akan melakukan perintah yang sama dengan yang dilakukan pada command line. Berikut ini akan diperkenalkan secara singkat mengenai istilah-istilah yang digunakan ketika seseorang menggunakan Git pada command line.

Clone

Kode yang terlibat di dalam mekanisme Git ada dua macam, yaitu kode yang terdapat di dalam komputer pengembang, disebut sebagai repository lokal; ada pula kode yang terdapat di dalam server, disebut sebagai repository server.

Clone adalah sebuah aktivitas menduplikasi kode yang terdapat pada repository server Git ke repository lokal dalam komputer kita. Biasanya, repository server dapat diakses dengan menggunakan dua cara, yaitu http/https, atau ssh. Perintah yang digunakan adalah sebagai berikut:

git clone <URL Repository> <Opsional: Nama Folder>

Branch

Seperti halnya sebuah pohon, sebuah versi kode juga dapat memiliki cabang, atau sering disebut dengan branch. Branch ini pada dasarnya adalah sebuah salinan kode versi tertentu.

Branch default yang selalu ada pada setiap repository dinamakan branch master. Kita dapat menambah, menamai branch, dan mengubah apapun isi kode di dalam suatu branch. Branch ini digunakan ketika kita ingin menyalin kode versi tertentu, dan tidak ingin mengganggu kode yang berada di branch lain.

Pada salah satu , setiap branch digunakan untuk mengembangkan sebuah fitur. Ketika fitur selesai dibuat, maka branch tersebut di-merge pada branch master. Perintah yang digunakan untuk membuat sebuah branch adalah sebagai berikut:

`git checkout -b <nama branch>`

-b menandakan pembuatan branch baru. Sedangkan perintah checkout tanpa -b akan melakukan pindah ke branch lain. Untuk melihat branch apa saja yang kita miliki, dapat menggunakan perintah berikut ini:

`git branch -a`

-a merupakan kependekan dari “all” yang berarti menampilkan semua branch yang terdapat pada repository lokal, dan branch yang berhubungan pada repository server.

Commit

Perubahan yang dilakukan pada sebuah branch, pada akhirnya harus di-commit oleh pengembangnya. Artinya, pengembang sudah yakin bahwa kodenya sudah sesuai dengan spesifikasi, dan ingin menjadikannya sebuah state atau kondisi tetap.

Commit juga dapat diibaratkan sebagai sebuah “check point” di mana seseorang bisa kembali ke titik tersebut suatu waktu. Perintah yang diberikan untuk melakukan commit adalah sebagai berikut ini:

`git commit -am “<pesan commit>”`

-a menandakan ingin melakukan commit pada semua perubahan, dan setiap aksi commit selalu diikuti dengan sebuah pesan komitmen, yang merupakan sebuah penanda untuk memudahkan pengembang mengingat titik commit ini. -m berarti ingin menambahkan pesan komitmen ini.

Push

Perubahan kode yang terjadi setelah commit pada repository lokal dapat di-push atau dipublikasikan pada server. Ini membuat pengembang lain yang memiliki akses pada repository yang sama dapat melihat atau menyalin kode yang sudah dipublikasikan ini.

Perintah push ini dapat dilakukan dengan menggunakan perintah berikut ini:

`git push <nama remote repository> <nama branch>`

Namun, perlu diingat, kode yang berada branch pada repository server tidak boleh menerima perubahan dari pengembang lain. Karena, ketika repository pada server sudah berubah oleh pengembang lain dibandingkan dari kondisi ketika kita melakukan clone atau pull, maka proses push tidak dapat dilakukan.

Kita harus melakukan pull terlebih dahulu agar proses push bisa berjalan. Hal ini dilakukan untuk memastikan bahwa versi kode para repository server tidak mengalami conflict.

Pull

Seperti yang telah disinggung sebelumnya, bahwa pull adalah sebuah mekanisme untuk melakukan download dan integerasi kode yang berada pada repository server menuju komputer lokal.

Pull ini hanya dapat dilakukan ketika semua kode yang berada pada komputer lokal sudah di-commit, atau memang tidak ada perubahan. Perintah pull dapat dilakukan dengan cara sebagai berikut ini:

`git pull <nama remote repository> <nama branch>`

Conflict

Meskipun demikian, konflik kode masih mungkin terjadi, terutama ketika pengembang mengubah file yang sama, baris yang sama namun dengan konten yang berbeda.

Pengembang tidak dapat melakukan push, pull, bahkan commit selama conflict ini masih belum resolved. Kode yang mengalami konflik ditandai dengan adanya sebuah baris tambahan pada file dengan ciri:

<<<<<<<<<<<<<<< HEAD

yang menandakan kode yang berada pada file lokal, kemudian

<<<<<<<<<<<<<<< <Nomor commit pada server>

yang menandakan kode yang berbeda yang berada pada file di server.

Pengembang harus memilih salah satu dengan menghapus yang lainnya, atau mengubahnya menjadi sebuah baris kode yang benar. Setelah konflik ini terselesaikan, pengembang harus melakukan commit kembali, untuk dipublikasikan ke server.

Merge

Branch-branch yang dibuat, dapat disatukan kembali menjadi sebuah branch. Proses ini deisebut dengan merging. Pada dasarnya, merge ini mirip dengan mekanisme pull, hanya saja dilakukan pada repository lokal ke repository lokal.

Perintah merge dapat dilakukan dengan:

`git merge <nama branch tujuan yang ingin di-merge>`

(……..)

Sumber referensi:

suarmedia

Forming tech based society

)

Tristia Riskawati

Written by

Founder of @te.mali.

suarmedia

suarmedia

Forming tech based society

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade