Standarisasi GIT Digital Amoeba
Apa itu Version Control Sistem dan GIT?
Version Control System (VCS) adalah sistem penyimpanan yang mencatat perubahan yang dapat dipanggil kembali pada versi yang diinginkan. VCS dapat memudahkan kita untuk menelusuri sejarah perubahan kode serta memahami alasan mengapa kode-kode tersebut diubah. Hal ini tentunya sangat membantu para developer untuk mengembangkan suatu aplikasi khususnya pada proyek yang dikerjakan secara bersamaan dalam tim.
Git merupakan salah satu VCS yang populer di dunia Software Engineering saat ini. Salah satu perbedaan antara Git dengan VCS lainnya adalah caranya memperlakukan data. VCS lain memperlakukan informasi yang disimpannya sebagai sekumpulan berkas dan perubahannya yang terjadi. Di sisi lain, Git memperlakukan data sebagai sebuah kumpulan snapshot dari sebuah miniatur sistem berkas. Setiap kali dilakukan commit, Git merekam gambaran keadaan berkas-berkas anda pada saat itu dan menyimpan referensi untuk gambaran tersebut. Ilustrasi snapshot dapat dilihat pada gambar di bawah ini.
Gimana sih GIT itu bekerja ?
Git akan memantau semua perubahan yang terjadi pada file project dan menyimpannya ke dalam database.
Saat kita ingin menyimpan semua perubahan pada file, biasanya kita membuat file baru dengan “save as”. Lalu, file akan menumpuk dalam direktori proyek seperti pada ilustrasi di sebelah kanan.
Dengan adanya Git, hanya akan ada satu file dalam project dan perubahannya disimpan dalam database. Git hanya akan menyimpan data perubahannya saja, tidak menyimpan seluruh isi file yang akan memakan banyak memori.
Selain itu, Git memungkinkan kita kembali ke versi yang kita inginkan.
Keuntungan menggunakan GIT
- Penyimpanan yang berbasis file (tidak menggunakan database/SQL).
- Gratis atau Open Source.
- Visual Control System yang terdistribusi.
- Mendukung dalam proyek besar seperti kernel Linux.
- Akses yang hanya menggunakan command line tanpa menggunakan client-server.
- Tampilan aplikasi yang mudah dipahami untuk pengguna baru.
Repository Hosting Manager Tools untuk GIT
GITHUB, GITLAB, & BITBUCKET merupakan layanan cloud hosting yang bertugas menyimpan dan mengelola repository GIT tersebut.
Perbedaan Gitlab, Github dan Bitbucket
Fitur Github
Fungsionalitas utama GitHub adalah percabangan dan forking repositori, permintaan tarik dan penggabungan, kloning basis kode. Fungsi utama bekerja dengan cepat – mungkin, yang tercepat di antara ketiganya. Pengembang dapat dengan cepat mengunggah file ke repositori jarak jauh dan menerima pemberitahuan langsung dari kontributor lain.
GitHub juga memiliki dukungan wiki – alat bawaan untuk membuat dan berbagi dokumentasi versi. Layanan ini mendukung beberapa format teks, termasuk penurunan harga .
Fungsionalitas tambahan :
- Issue tracker yang mendeteksi masalah dalam basis kode dan memberi tahu kolaborator;
- Papan masalah mendukung Kanban dan Scrum dan memungkinkan penataan tugas;
- GitHub mendukung epik yang memungkinkan pelacakan kemajuan tim;
- Peta jalan membantu merencanakan proyek tim dan menunjukkan tonggak penting;
- Estimasi dan poin: pengembang dapat memperkirakan poin upaya untuk setiap masalah dan berbagi detail dengan kolaborator;
- Menyinkronkan versi gabungan, masalah GitHub, dan permintaan penarikan;
- Aplikasi desktop untuk Windows dan Mac, serta aplikasi seluler untuk Android
- Dukungan dari 200+ bahasa pemrograman
- Integrasi dengan Asana, AWS, Windows Azure, Google Cloud , Code Climate
- Halaman GitHub adalah layanan bawaan untuk membangun dan menghosting situs dengan GitHub.
- Penyorotan sintaks (tidak ada di BitBucket)
- Komunitas open-source populer
Fitur Gitlab
Popularitas GitLab tumbuh karena peningkatan adopsi CI / CD dan DevOps . Repositori kode lain menawarkan fitur CI dalam versi premiumnya, tetapi di GitLab, dukungan CI disertakan dalam paket gratis. Selain itu, pengembang dapat menghosting integrasi CI GitLab di server mereka.
Fungsionalitas tambahan
- Subkelompok, manajemen kepatuhan, dan acara audit: GitLab memungkinkan pembatasan akses ke proyek dan melihat status kepatuhan setiap peserta;
- Perencanaan proyek: pengembang melacak masalah kode dengan daftar tugas bawaan, templat deskripsi, dan panel manajemen masalah;
- Komunikasi: pengembang dapat bertukar file terlampir, membuat utas dan berpartisipasi di dalamnya, melacak perubahan, memprioritaskan diskusi dengan label, menetapkan pencapaian, dan menyelesaikan iterasi;
- Manajemen kode sumber: GitLab dihargai karena antarmukanya yang intuitif untuk percabangan, penggabungan, penguncian file, pelaporan. GitLab juga menawarkan templat kode sumber gratis dan integrasi JIRA;
- Integrasi berkelanjutan: nilai jual utama platform ini adalah alat CI gratis, termasuk pipeline induk-anak, penskalaan otomatis horizontal, visualisasi artefak HTML dan variabel yang dilindungi, dll .;
- Pembuatan paket: pengembang dapat menggunakan paket terpisah tergantung pada tumpukan teknologi mereka – ada paket untuk PHP, Node.js, Java, dan lainnya;
- Keamanan: GitLab menyediakan pemindaian keamanan, memungkinkan pengujian keamanan dinamis (namun, hanya dalam paket Gold dan Ultimate yang paling mahal);
- Konfigurasi dan DevOps: fitur Auto DevOps tersedia dalam paket gratis, sedangkan add-on khusus hanya didukung oleh paket Gold dan Ultimate.
Fitur Bitbucket
Fitur utama BitBucket
BitBucket memungkinkan pengembang untuk menghosting kode di repositori pribadi dan publik. Pengguna dapat membuat repositori pribadi dalam jumlah tidak terbatas – selama tidak lebih dari 5 pengguna menggunakannya. Perbedaan utama dari platform ini adalah integrasinya dengan Jira dan Asana. Sejak Atlassian mengakuisisi BitBucket, itu telah menjadi komponen asli dari ekosistem mereka.
Hasilnya, pengembang dapat dengan mudah memantau aktivitas BitBucket di Jira, mengukur produktivitas mereka, dan menghubungkan dewan organisasi ke repositori kolaboratif. Ini nyaman karena manajer proyek dapat dengan mudah melacak aspek organisasi dan teknologi proyek.
Fungsionalitas tambahan :
- Pipelines adalah layanan CI / CD yang menampilkan seluruh siklus hidup pengembangan produk. Di BitBucket, pengembang dapat melacak kemajuan penerapan perangkat lunak.
- Izin cabang: pengembang dapat mengizinkan orang tertentu mengakses ke repositori;
- Integrasi dengan Slack, Bamboo, Jenkins, HipChat, Crucible, dan alat lainnya;
- Klien Mac dan Windows, dan aplikasi Android, yang disebut Bit Beaker;
- BitBucket Snippets: pembuatan cuplikan untuk basis kode;
- Dokumentasi dan wiki;
- Panel pencarian untuk navigasi basis kode;
- Banyak add-on di pasar Atlassian, yang sebagian besar dapat dengan mudah diintegrasikan ke dalam seluruh ekosistem.
GIT CORPU merupakan layanan GITLAB yang tersimpan pada cloud internal yang berguna untuk menyimpan dan mengelola project yang ada pada Telkom CorpU.
Extension Git Graph dan GitLens di VSCode
Kita bisa menginstall dua extension yakni Git Graph dan GitLens untuk mempermudah kita dalam melakukan manajemen Git.
Git Graph
Link Extension: https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph
Git Graph berfungsi untuk menampilkan git log dengan lebih interaktif dan mudah untuk dimengerti. Extension ini sangat berguna dan tergolong ringan dan merupakan extension yang wajib digunakan oleh software developer yang ingin berkolaborasi dan menjadi lebih efisien menggunakan Git.
Git Graph mempermudah developer untuk melompat antar commit dan branch untuk melakukan Create, Checkout, Delete, Fetch, Merge, Pull, Push, Rebase, Rename & Reset Branches. Terdapat banyak fitur lainnya yang bisa diexplore oleh para software developer untuk menyesuaikan dengan keperluan masing-masing.
GitLens
Link Extension: https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens
GitLens merupakan extension open-source yang menambahkan lagi pengalaman software developer dalam menggunakan Git di VSCode. Extension ini lebih berat dari Git Graph namun memiliki lebih banyak fitur, maka dari itu bersifat opsional untuk diinstall dibandingkan dengan Git Graph. GitLens juga memiliki beberapa fitur yang berbayar yang sangat membantu bagi software developer.
Salah satu fitur yang sangat membantu dari GitLens adalah fitur Inline and Status Bar Blame, dimana kita bisa mengetahui siapa saja yang melakukan perubahan kode di setiap baris codebase.
Kita kemudiannya bisa mengarahkan mouse ke baris tersebut untuk melihat siapa yang merubah kodingan tersebut, bagaimana wujud kodingan tersebut sebelumnya, commit dan merge request kodingan tersebut, dan lain-lain.
Terdapat banyak fitur lainnya dari extension ini yang bisa dicek langsung di link marketplace yang disediakan di atas.
Buat Repository baru di GIT
Please go to gitlab.com
Dibawah ini adalah tampilan ketika baru masuk ke dalam Gitlab Digital Amoeba :
- Menu Login
- Menu Register
*Note: Jangan menggunakan login Google Account
Berikut adalah langkah-langkah untuk membuat sebuah Repository baru di Gitlab Digital Amoeba :
- Create a Project
2. Pilih “Create Blank Project”
Setelah mengklik blank project ada beberapa settingan yang direkomendasikan untuk digunakan :
- Isi project name yang sesuai dan project description bila diperlukan.
- Pastikan Visibility Level = Private.
- Uncheck “Initialize repository with a README”
3. Setting Git
Kita perlu menyesuaikan username global kita ke dalam repository yang akan digunakan :
- Masuk ke folder tujuan
- Buka terminal GIT BASH (Klik kanan, klik “GIT Bash Here..”)
- Note: Kita juga bisa menggunakan terminal apapun seperti command prompt atau terminal selagi git sudah terinstall.
- Masukkan command “git init –initial-branch=main” terlebih dahulu
- Kemudian, lakukan command di bawah ini :
*sesuaikan dengan yang ada di repository masing-masing.
*flag –global berfungsi jika user.name dan user.email ingin digunakan di setiap project.
*jangan gunakan flag –global jika suatu project perlu menggunakan user.name dan user.email khusus project tersebut.
- Ini adalah contoh ketika kita sudah melakukan config untuk username dan emailnya
- Kita juga bisa melakukan config untuk username dan email menggunakan extension Git Graph. Buka tab Git Graph dari tombol yang ada di bawah
- Kemudian tekan tombol “gear” yang ada di pojok kanan atas.
- Cari baris “User Details”. Di sini, kita bisa mengedit user name dan user email git project tersebut. (note: pengeditan user name dan user email dengan cara ini bersifat local dan tidak global)
4. Push code
Setelah kita mengkonfigurasi username dan juga email, kita perlu melakukan initial commit terlebih dahulu
- Untuk melakukan push terhadap folder yang sudah ada, lakukan command (Push an existing folder) :
*jika pada terminal sudah masuk di folder tujuan dan sudah melakukan git init, langsung mulai di baris 3
*sesuaikan dengan yang ada di repository masing-masing.
- Berikut adalah contoh ketika kita sudah melakukan initial commit kedalam repository kita
Branching Method : Menggunakan metode Feature Branch
Feature branch dan bagaimana cara kerjanya
Setiap melakukan development fitur baru atau melakukan bug fixing, code tersebut akan ditempatkan pada branch khusus, tidak di main atau develop atau deploy branch untuk lebih lengkapnya dapat dilihat pada tabel dibawah :
Dapat dilihat di atas terdapat beberapa branch yang juga memiliki fungsi dan tugasnya masing-masing mulai dari development, dev-user sampai branch hotfix. Khusus untuk branch master dan development akan di set secara Blocked sehingga kita tidak bisa push/mengedit manual oleh developer secara langsung dan hanya bisa melalui merge request. Ketika melakukan merge request dan terdapat konflik di dalamnya kita dapat me resolve konfliknya di dalam git repository oleh admin atau secara local oleh developer.
Bagaimana cara membuat branch baru?
- Buat branch baru yang mengacu pada main branch
Terdapat 2 cara yaitu :
Dan
Untuk struktur branch nya adalah
- Update, Add & Commit Changes
- Update, Add & Commit Changes
- Push branch yang baru dibuat tadi kedalam central repository
- Next push pake command push yang biasa
- Pull request & Merge Request
- Biasakan sebelum melakukan merge request kita pull dulu ke main repository agar mengecilkan peluang terjadinya conflict
2. Kemudian jangan lupa untuk commit dan push kembali ke branch nya
3. Melakukan merge request pada GUI GIT kemudian di review dan approve oleh approver-nya
4. Dalam melakukan merge request kita dapat menambahkan deskripsi di dalamnya mengenai what, why dan how sehingga memudahkan maintainer dengan melihat scope yang lebih jelas
5. What berisi apa yang kita kerjakan, why berisi mengapa kita mengerjakan itu dan apa yang berubah, how berisi bagaimana cara kita mengubahnya
- GIT Rebase
git rebase adalah perintah yang memungkinkan pengguna Git untuk memodifikasi basis satu cabang menjadi komit. Selain itu, ia menulis ulang riwayat komit cabang dengan memindahkan seluruh cabang ke titik awal yang baru. Ini berguna untuk memasukkan modifikasi dari cabang lain, membersihkan riwayat komit, dan menyelesaikan konflik.
Kalau di perhatikan, rebase hanya mengambil commit dari branch lain.
Dalam hal ini branch master mengambil 2 commit dari branch develop.
Perhatikan juga bahwa ketika menggunakan rebase maka tidak akan membuat commit baru.
Keunggulan rebase :
- Mebuat history repository yang lebih bersih
- Memudahkan untuk membaca grafik commit
Kekurangan :
- Sulit diperbaiki jika terjadi konflik
- Git Stash
Selain working area, staging dan repository, Git memiliki area yang disebut stash di mana kita dapat menyimpan sementara perubahan yang kita buat tanpa melakukan commit ke repository.
Ini berguna dalam situasi kita sedang melakukan perubahan pada kode, dan belum siap untuk melakukan commit, namun kita perlu berpindah ke branch lain
- Stash Perubahan
Untuk menyimpan perubahan kita ke stash, gunakan perintah
git stash save "pesan stash"
Perintah tersebut akan menyimpan perubahan dan mengembalikan (revert) working directory ke posisi commit terakhir. Perubahan yang tersimpan di stash dapat diakses dari branch manapun dalam satu repository.
- Melihat Perubahan dalam Stash
Untuk melihat perubahan yang tersimpan dalam stash, gunakan perintah
git stash list
Perintah di atas akan mengembalikan daftar stash yang tersimpan dalam format
stash@{0}: NAMA-BRANCH: PESAN
stash@{0} adalah nama dari stash, nomor dalam kurung {0} adalah index dari stash. Nama dan index tersebut digunakan untuk memilih stash yang akan kita terapkan.
- Mengambil Perubahan dalam Stash
Untuk mengambil perubahan yang tersimpan di dalam stash ke branch yang sedang aktif, gunakan perintah berikut
# terapkan perubahan dari stash ke branch aktif
git stash apply NAMA-STASH
# terapkan perubahan dan hapus file dari stash
git stash pop NAMA-STASH
Ketika menerapkan perubahan dari stash ada kemungkinan terjadi konflik, untuk menyelesaikannya sama seperti dalam kasus konflik merge.
- Menghapus Perubahan dalam Stash
Untuk menghapus perubahan dari daftar stash, jika kita sudah tidak lagi membutuhkannya, gunakan perintah berikut:
# menghapus stash yang dipilih
git stash drop NAMA-STASH
# menghapus semua stash
git stash clear
- Merge Conflict
Karena topik Merge Conflict merupakan suatu topik yang cukup kompleks dan terkadang membingungkan, kami telah membuat artikel terpisah di docs.digitalamoeba yang membahas dengan lebih detail dan mendalam tentang cara menyelesaikan merge conflict dengan efisien menggunakan VSCode. Berikut adalah artikel untuk merge conflict tersebut:
https://docs.digitalamoeba.id/technology/resolving-merge-conflicts-in-vscode
Basic Operations on GIT CLI
Flow
Kita akan mempelajari flow dari version control system GIT. Berikut merupakan perintah-perintah yang paling sering digunakan dalam sebuah flow git.
Clone
git clone repo-url
Perintah ini digunakan untuk menyalin remote repository ke dalam direktori local.
Init
git init
Perintah ini digunakan untuk membuat repository baru pada direktori local.
Add
git add .
Perintah ini digunakan untuk menambahkan perubahan file pada direktori lokal ke staging area.
Bisa menggunakan command “git add .” untuk menambahkan semua file ke staging area.
Commit
git commit -m "message"
Perintah ini digunakan untuk melakukan commit pada perubahan yang sudah di staging ke head. Perubahan yang di-commit belum langsung digabung ke remote repository.
*command ini dijalankan setelah melakukan staging atau “git add .”
Push
git push origin nama-branch
Perintah ini digunakan untuk menggabungkan perubahan pada direktori local kalian ke remote repository.
*command ini dijalankan setelah melakukan commit atau “git commit -m “message””
Pull
git pull origin nama-branch
Perintah ini digunakan untuk menarik / menggabungkan perubahan pada remote repository ke direktori local kalian.
*command ini biasanya dijalankan sebelum melakukan perubahan pada direktori local atau sebelum melakukan push (setelah melakukan commit), agar keep updated dan juga menghindari conflict pada saat proses merge.
Checkout
git checkout -b nama-branch
Perintah ini digunakan untuk membuat branch baru dan berpindah ke branch baru tersebut.
git checkout nama-branch
Perintah ini digunakan untuk berpindah ke branch lain.
Status
git status
Perintah ini digunakan untuk mengetahui status pada file yang berubah beserta file yang ingin di-staging maupun di-commit.
Use GIT with Source Control in VSCode
Make changes & Save changes
Go to Source Control & Click modified file
View Working Tree of modified file & Stage changes
Unstage changes or Commit changes
Push or Publish Branch
Commit Naming Conventions
Terdapat banyak commit naming conventions yang biasa digunakan dan hal tersebut tergantung pada kebijakan dan kesepakatan setiap proyek dan tim yang berbeda. Maka dari itu, kami menyarankan agar berdiskusi bersama anggota tim developer untuk menentukan naming convention yang cocok untuk tim dan proyek masing-masing. Berikut merupakan salah satu contoh commit naming convention yang bisa digunakan: https://gist.github.com/qoomon/5dfcdf8eec66a051ecd85625518cfd13
- API relevant changes
- feat Commit yang menambahkan atau menghapus fitur baru
- fix Commit yang memperbaiki bug
- refactor Commit yang menulis kembali/restruktur kode Anda, namun tidak mengubah perilaku API
- perf Commit yang merupakan refactor khusus yang meningkatkan kinerja
- style Commit yang tidak mempengaruhi makna (spasi putih, pemformatan, titik koma yang hilang, dll)
- test Commit yang menambahkan tes yang hilang atau memperbaiki tes yang ada
- docs Commit yang hanya mempengaruhi dokumentasi saja
- build Commit yang mempengaruhi komponen pembangunan seperti alat pembangunan, pipeline CI, dependensi, versi proyek
- ops Commit yang memengaruhi komponen operasional seperti infrastruktur, implementasi, pencadangan
- chore Commit lain-lain seperti memodifikasi .gitignore
Contoh
feat: add email notifications on new direct messages
feat(shopping cart): add the amazing button
feat!: remove ticket list endpoint
refers to JIRA-1337c
BREAKING CHANGES: ticket endpoints no longer supports list all entities.
fix(api): handle empty message in request body
fix(api): fix wrong calculation of request body checksum
fix: add missing parameter to service call
The error occurred because of <reasons>.
build(release): `bump version to 1.0.0
build: update dependencies
build(release): `bump version to 1.0.0
refactor: implement fibonacci number calculation as recursion
style: remove empty line
Kelebihan dan Kelemahan menggunakan GUI
Kelebihan
- Desain yang Menarik
Salah satu kelebihan terbesar GUI adalah kemampuannya untuk membuat tampilan yang menarik secara visual. GUI dapat memanfaatkan berbagai elemen desain seperti warna, gambar, animasi, tipografi untuk membuat pengalaman pengguna lebih menyenangkan.
Dengan desain GUI yang matang, pengguna akan lebih tertarik dan nyaman berinteraksi dengan sistem. GUI juga membantu membangun branding suatu produk melalui tampilan khas yang dapat dikenali pengguna.
- Memudahkan Interaksi Pengguna dan Komputer
Seperti sudah disebutkan sebelumnya, GUI sangat memudahkan interaksi antara pengguna dengan komputer. Pengguna cukup mengklik, menscroll, atau mendrag elemen visual untuk melakukan perintah, tanpa perlu mengetikkan syntax yang rumit.
Hal ini membuat komputer jauh lebih mudah digunakan oleh siapa saja, bahkan pengguna awam sekalipun. GUI membuka aksesibilitas komputer untuk kalangan yang lebih luas.
- Mudah Digunakan
Berkat tampilan visual dan interaksinya yang intuitif, GUI sangat mudah untuk digunakan pengguna. Pengguna, terutama pengguna baru, akan lebih cepat memahami cara mengoperasikan sistem ber-GUI dibandingkan CLI.
GUI menyembunyikan kerumitan sistem di balik antarmuka visual yang familiar bagi pengguna. Ikon, menu, dan jendela membuat navigasi sistem menjadi sangat sederhana. Pengguna tidak perlu menghafal banyak perintah.
- User Friendly
GUI didesain agar bersahabat dengan penggunanya (user friendly). Tampilan dan interaksinya dibuat semudah mungkin untuk memastikan pengguna nyaman menggunakan sistem.
GUI membantu mengurangi tingkat frustrasi dan kebingungan pengguna saat mengoperasikan sistem. Pengguna juga didukung melalui feedback visual seperti tooltip, cursor change, dan animasi untuk membimbing interaksi.
- Tampilan yang Sederhana
GUI menciptakan abstraksi yang menyembunyikan kerumitan sistem di balik tampilan sederhana yang mudah dicerna pengguna. Pengguna tidak perlu pusing memikirkan proses yang terjadi di balik layar.
Misalnya, pengguna cukup mengklik icon printer untuk mencetak, tanpa perlu tahu proses rendering dan pengiriman data ke printer yang kompleks. Tampilan sederhana ini membuat GUI sangat intuitif digunakan.
Kekurangan
- Membutuhkan spesifikasi hardware yang lebih besar dan mumpuni
Karena kebanyakan menggunakan grafis, antarmuka GUI tentu harus memerlukan spesifikasi hardware yang mendukung. Jika tidak, pasti akan ada masalah yang akan muncul.
- Performa lebih berat
Membuka program atau aplikasi tentu membutuhkan source memori yang banyak. Selain itu, performa lainnya juga harus dibutuhkan untuk memenuhi berbagai perintah yang dijalankan. Jika memori laptop atau komputer memiliki kapasitas memori yang terbatas maka bisa saja lemot atau ngehang.
- Biasanya berbayar
Semakin bagus fitur yang ditawarkan system operasi, semakin berpeluang juga untuk menghasilkan pundi-pundi uang. Bukan hanya itu, diperlukan juga perawatan dan pembaruan yang lebih mendalam untuk memberikan kenyamanan para penggunanya. Karena hal inilah banyak dari antarmuka GUI yang menerapkan lisensi pada produk yang dibuatnya. Contoh system operasi yang menggunakan antarmuka GUI berbayar adalah Windows dan Mac OS (Macintosh).
Kelebihan dan Kelemahan menggunakan CLI
Kelebihan
- Efisiensi, ringan dan cepat.
Bagi yang sudah ahli dan familiar dengan kode-kode, antarmuka CLI mungkin tidak akan menjadi masalah. Bahkan bagi mereka yang sudah ahli, mungkin CLI adalah pilihan yang terbaik. Selain lebih efisien, ringan dan cepat, antarmuka CLI juga biasanya lebih mudah untuk membuat/membobol konfigurasi keamanan. Berbagai hak akses keamanan mungkin bisa lebih mudah didapat dengan menggunakan antarmuka CLI. Contoh saja untuk melihat isi folder, kita hanya perlu mengetikkan perintah ls, untuk hapus perintah rm. Mudah sekali bukan?
- Mudah dalam membuat folder dan sub folder.
Membuat beberapa folder pada antarmuka CLI sangat mudah, cukup mengetik perintah mkdir maka folder baru sudah dibuat. Meski GUI juga cepat dalam membuat folder, namun dalam antarmuka CLI lebih cepat dalam hal ini.
- Performa stabil
Karena hanya menggunakan text, antarmuka system operasi ini terlihat lebih stabil dibanding GUI. Hal ini tentu tidak akan memengaruhi aktivitas karena tidak memakan resource memory yang terlalu banyak. Banyak juga perusahaan yang lebih suka membangun server jaringan dengan menggunakan CLI karena tingkat stabilnya, misalnya Debian Server.
- Biasanya gratis
Mayoritas antarmuka CLI bersifat gratis dalam penggunaannya. Hal ini bisa jadi karena rata-rata antarmuka CLI menggunakan system operasi berbasis open source. Contoh system operasi yang menggunakan CLI gratis adalah Ubuntu, Debian, FREBSD, KaliLinux, dan lain sebagainya.
- Hanya memerlukan spesifikasi hardware yang rendah, tidak muluk-muluk
Hal ini dikarenakan antarmuka CLI hanya menggunakan perintah text, tanpa menggunakan grafis berat sama sekali.
- Jarang terkena virus
Selain beberapa kelebihan yang sudah dijelaskan sebelumnya, antarmuka CLI juga mungkin jarang terkena virus atau malware. Apalagi jika sistem operasinya berasal dari Linux yang umumnya sangat jarang diserang virus bandel.
Kekurangan
- Bagi pengguna awam, terkesan tidak menarik dan sangat membosankan
Bayangkan saja, kamu melihat layar tanpa adanya gambar atau visual apa pun. Hanya ada background hitam dan text yang berwarna putih. Apa yang kamu rasakan pertama kali? Kalau saya sendiri sih sudah tentu sangat bosan melihatnya.
- Harus menghafal/mengerti berbagai kode baris dan perintah
Selain tampilan yang gitu-gitu saja, kamu juga harus mengingat berbagai baris untuk menjalankan suatu perintah. Ini tentu menjadi sangat ribet apabila kamu menginginkan sesuatu yang instant dan praktis. Misalnya kamu ingin internetan melalui antarmuka CLI, kamu harus terlebih dahulu membuat konfigurasi tertentu agar kamu bisa terkoneksi dengan internet. Jika kamu masih pemula, hal ini tentu menjadi sangat sulit dan ribet, bahkan mungkin saja konfigurasimu salah dan harus dicek satu per satu.
- Salah Perintah Bisa Fatal
Biasanya antarmuka CLI tidak terlalu banyak menanyakan hal, karena semuanya mungkin serba simpel. Antarmuka ini secara otomatis akan menjalankan berbagai perintah yang dimasukkan. Misalnya saat membuat server jaringan dan ternyata ada beberapa perintah yang belum diinterupsikan, maka kemungkinan jaringan akan gagal dibuat. Perlu pengecekan mendalam di setiap baris perintah yang dijalankan. Bagi yang belum terlalu mahir, cara ini mungkin tampak ribet dan sangat membingungkan.
- Risiko Kehilangan File Lebih Besar
Saking cepatnya menggunakan baris kode, mungkin saja kita tanpa sengaja melakukan kesalahan. Misalnya saat ingin menghapus file dengan rm, kita tentu harus mencari lokasi file atau targetnya dengan benar. Jika tujuannya salah karena keteledoran kita, maka file itu bisa langsung terhapus. Ini tentu memiliki risiko yang lebih besar, apalagi jika file tersebut penting.
Kesimpulan
Git adalah sistem kontrol versi yang populer dalam pengembangan perangkat lunak, memungkinkan pengembang untuk melacak perubahan pada file proyek dan berkolaborasi dalam tim. Dengan kemampuannya menyimpan perubahan hanya dalam database, Git menawarkan efisiensi penyimpanan dan memudahkan untuk kembali ke versi sebelumnya. Keuntungan menggunakan Git termasuk penyimpanan berbasis file, gratis atau open source, serta dukungan untuk proyek besar dan berbagai layanan hosting. Selain itu, perbedaan antara platform hosting seperti GitHub, GitLab, dan Bitbucket terletak pada fitur tambahan yang mereka tawarkan. Dalam penggunaannya, antarmuka command line (CLI) menyediakan efisiensi bagi pengguna yang terbiasa, sementara antarmuka grafis (GUI) lebih cocok bagi pengguna awam dengan tampilan visual yang intuitif. Penting untuk mengikuti praktik-praktik terbaik, seperti menggunakan naming conventions yang konsisten dan memahami fitur-fitur seperti rebase dan stash untuk menjaga alur kerja yang terorganisir dalam penggunaan Git.