in Programming

Menguasai Git Basic kurang dari 1 jam

Berasal dari pengalaman menerima siswa SMK dan Mahasiswa Perguruan Tinggi Jurusan Teknik Informatika untuk magang di WebHade Creative, saya menemui hal yang paling lucu dalam dunia coding, mau jadi programmer tapi belum tahu Git sedikit pun.

Mungkin tidak bisa disalahkan pula karena memang Git tidak ada dalam daftar materi ajar di sekolah atau universitas. Hanya mungkin lebih baik jika kedepannya mulai dikenalkan tentang sub versioning, khususnya Git.

Berikut akan saya share sedikit tips untuk menguasai Git hanya dalam waktu kurang dari 1 jam, tidak termasuk ngulik, error, dan koneksi lemot ya 😀

Yang mana cara ini sudah saya praktekan kepada setiap siswa & mahasiswa magang dikantor WebHade. Mudah-mudahan bisa membantu untuk siapa saja yang ingin memulai berkenalan dengan Git atau mereka yang sudah mencoba namun mengalami kesulitan untuk memahami.


Menginstall Git

Yang pertama harus dilakukan, tentu saja adalah menginstall Git di komputer/laptop kamu. Langsung saja akses website download Git disini https://git-scm.com/downloads

Lalu download sesuai operating system yang kamu pakai, dan setelah selesai download setup installernya, dan cukup next-next saja sampai selesai, biarkan default saja.

Untuk yang memakai OS Linux kamu tinggal mengikuti langkah-langkah installnya disini https://git-scm.com/download/linux

Setelah selesai menginstall git, buka terminal / command prompt dan ketik perintah:

$ git

jika sudah muncul seperti gambar dibawah, berarti Git sudah siap digunakan.

Git versi Windows juga dilengkapi console tersendiri dengan nama Git Bash. Untuk mengakses git bash, kamu hanya tinggal meng-klik kanan dan memilih menu Git Bash Here.

Kenapa saya tidak memilih menggunakan GUI version?

karena saya merasa lebih mudah & praktis menggunakan console version, dibanding memakai GUI yang saya rasa agak repot, dan tentunya terlihat lebih keren kan 😛

Repository

Repository atau singkatnya hanya sering disebut repo, adalah tempat Git menyimpan informasi dari semua perubahan kode-kode yang kamu kerjakan, baik sendiri maupun bersama dengan tim.

Secara umum repo terdiri dari 2 jenis, local repo dan remote repo, local tentu saja yang ada di laptop/komputer kamu, sedang remote repo adalah repo yang tersimpan di sebuah server atau komputer yang terhubung dengan jaringan internet, contoh remote repo yang paling populer adalah GitHub (https://github.com/), GitLab (https://about.gitlab.com/), dan Bitbucket (https://bitbucket.org/).

Secara privasi, repo juga terdiri dari 2 jenis, public dan private repo. Jelas public repo adalah repo yang dapat diakses siapa saja, sedang private hanya bisa diakses jika di-invite saja oleh pemilik repo itu. GitLab & Bitbucket adalah contoh layanan remote repo yang private reponya free alias tidak perlu membayar untuk menggunakannya.

Membuat Repository Baru

Yuk langsung latihan:

  1. silahkan buat sebuah folder dimanapun kamu mau, misal di desktop dengan nama latihangit
  2. buka foldernya dan akses git bash dari folder itu
  3. lalu ketikan perintah berikut
$ git init

Maka akan muncul pesan seperti pada gambar, dan folder .git terbuat didalam folder latihangit tadi. Folder ini ter-hidden secara default, jadi kamu harus setting show all hidden files di Folder Options ya supaya muncul.

Oke, selamat! Repository baru sudah terbuat dan siap untuk diisi

isi folder .git, silahkan googling saja ini fungsi nya apa saja ya 😀

Konfigurasi Git

Setiap perubahan yang dilakukan akan tersimpan dalam sebuah commit / log , dan Git akan memunculkan info kapan dilakukan perubahan itu (Date) dan oleh siapa (Author). Untuk itu kita perlu mengatur konfigurasi user Git.

Konfigurasi Git terdiri dari 2, yaitu global & per repo. untuk melakukan setting global kamu hanya perlu menambahkan –global pada perintah config yang di-setting.

Berikut adalah perintah untuk setting nama & email pada global config

$ git config --global user.name “wisnu hafid” 
$ git config --global user.email “wisnuhafid@gmail.com”

pada OS windows, kamu akan menemukan file confignya di

C:\Users\namauserkamu\.gitconfig

jika kamu buka, kurang lebih isinya seperti ini:

[user]
 email = wisnuhafid@gmail.com
 name = Wisnu Hafid
[http]
 emptyAuth = true

Nah jika kamu mengetik tanpa –global seperti ini:

$ git config user.name “wisnu hafid” 
$ git config user.email “wisnuhafid@gmail.com”

Maka settingan tersebut akan disimpan pada file config didalam folder .git tempat kamu membuat repo tadi

Status

Lanjutkan dengan membuat file baru didalam folder latihangit, misalnya index.html, isinya bebas, misalnya

lalu pada git bash ketikan perintah:

$ git status

Maka akan terlihat, index.html berwarna merah, artinya file ini belum ditambahkan ke commit stage, saya menyebut commit itu adalah pekerjaan yang akan disetorkan. Lebih mudahnya mungkin seperti ini fasenya

unstaged = belum / tidak disetor
commit stage = akan disetor
commited = sudah disetor

Untracked files menandakan file-file yang ada disana adalah file baru yang belum ada di repo sebelumnya.

Untuk menambah file ke commit stage, gunakan perintah

$ git add namafile.ext

kita coba menambahkan file index.html tadi dengan perintah:

$ git add index.html

Dan jika kita ketik git status lagi, maka akan muncul seperti ini:

File ini berubah menjadi warna hijau, tandanya file ini siap untuk di commit, atau siap untuk disetorkan, Git akan menandai ini sebagai perubahan yang akan di-commit-kan.

Kita coba membuat file baru lagi yang banyak misal kita buat tes1.txt, tes2.txt, tes3.txt. isinya bebas terserah. Coba juga membuat folder baru didalam folder latihangit, misalnya folderbaru, dan buat file baru disana. Lalu ketik git status.

contoh struktur folder latihangit

Supaya tidak cape menambahkan satu-satu, masih mending itu hanya sedikit, bagaimana jika banyak dan foldernya berbeda-beda juga dalem, pasti repot kan. Nah kita kita bisa gunakan perintah ini:

$ git add -A

atau

$ git add .

Kedua perintah diatas akan menambahkan semua file ke commit stage.

Misalnya ternyata setelah ditambahkan semua, kita baru ingat, file tes3.txt itu jangan dimasukan ke commit stage, nah untuk menghapus file yang sudah ada di commit stage kita gunakan perintah:

$ git restore --staged namafile.ext

Jika masih menggunakan Git versi lama gunakan syntax ini

$ git rm --cached namafile.ext

Kita hapus file tes3.txt dari commit stage dengan:

$ git restore --staged tes3.txt

Commit

Nah setelah sudah merah lagi si tes3.txt nya, sekarang kita yakin nih perubahan ini mau kita commit / setorkan. Untuk melakukan commit / perubahan jika gunakan perintah:

$ git commit -m "pesan commit"

pesan commit tidak harus pendek atau detail, tetapi yang penting singkat padat dan jelas. Pointnya menjelaskan apa sih yang sudah kita kerjakan ini, apa sih perubahan yang dilakukan ini. Misalnya seperti ini:

$ git commit -m "latihan pertama git membuat index, 2 file teks, dan folder baru"

Kita juga bisa membuat comment multi baris dengan <enter>, syaratnya jangan di tutup dulu oleh tanda kutip (“) seperti ini, maka akan muncul tanda lebih besar (>), lalu jika sudah selesai kita tutup dengan tanda kutip lalu <enter>

$ git commit -m "latihan pertama git membuat index
> 2 file teks
> dan folder baru"

Untuk melihat semua list commit kita pakai perintah:

$ git log

Change & Diff

Lanjutkan dengan merubah isi file index.html misalnya kita tambahkan seperti ini:

Ubah juga isi file lainnya, terserah kamu. Lalu ketik git status.

Modified menandakan semua file yang dirubah, dan jika kita mengembalikan file yang sudah dirubah ke sebelum dilakukan perubahan (restore) kita gunakan perintah:

$ git restore namafile.ext

Untuk Git versi lama gunakan syntax ini:

$ git checkout -- namafile.ext

Maka file yang sudah dirubah itu akan kembali ke sebelumnya. Jadi hati-hati jangan sampai salah restore file ya, nanti hasil kerja kalian hilang 😀 lakukan jika memang diperlukan saja.

Nah misalnya kita ingin tahu tadi apa saja sih file yang dirubah, kita gunakan perintah:

$ git diff

Namun syaratnya harus dalam kondisi belum di add / masih unstaged, karena jika sudah di add, maka tidak bisa dilihat perbedaannya.

Untuk melihat perbedaan dari 1 file saja, kita gunakan perintah

$ git diff namafile.ext

Kita juga bisa melakukan commit & add dalam 1 perintah saja, yaitu:

$ git commit -am "pesan commit"

Namun hanya berlaku untuk file yang modified saja, jadi file yang masih di Untracked files tidak akan ikut ter-commit. Perhatikan gambar berikut:

Branch

Branch pada Git, itu sama seperti layaknya cabang pada pohon. Pada pekerjaan yang melibatkan banyak personil atau banyak fitur yang dikerjakan, kita tentunya ingin membuat cabang utama aman, dan tidak terpengaruh oleh cabang lainnya.

Branch default pada Git adalah master, ketika kamu mengetik git status muncul kan tulisan on branch master. Master adalah cabang utama yang menyimpan pekerjaan kita yang sudah berjalan dengan baik, kasarnya yang baik-baik ada di master. Nah misalnya kita membuat website dan sudah berjalan dengan baik, kita simpan kodenya pada branch master, lalu suatu saat kita ingin menambah fitur baru, tapi kita tidak ingin merusak kode yang ada di master. Pada situasi ini, kita perlu branch baru, dan di branch baru ini, mau kita melakukan apapun, tidak akan berpengaruh pada kode yang ada di branch master.

Untuk melihat semua branch yang kita miliki gunakan perintah

$ git branch

Untuk membuat branch baru cukup tambahkan nama branch setelahnya, seperti ini

$ git branch namabranchbaru

Branch dengan tanda bintang (*) dan berwarna hijau, adalah branch yang aktif, atau yang sedang kamu gunakan. Untuk berpindah ke branch yang lain, gunakan perintah:

$ git checkout namabranch

Coba tambahkan branch baru lagi, bebas.

Untuk menghapus branch, gunakan perintah:

$ git branch -d namabranch

Jika branch yang dihapus adalah branch aktif, maka muncul error seperti dibawah ini. Jadi kamu harus pindah ke branch yang lain dulu, baru setelah itu hapus branch-nya.


Membuat Remote Repository

Latihan selanjutnya membutuhkan akun GitHub untuk testing, jadi jika kamu belum memiliki akun di GitHub, silahkan daftar dahulu dan jangan lupa verifikasi emailnya.

Setelah login ke GitHub, buat repository baru dengan mengklik icon +dan pilih dropdown menu New repository, atau klik Tombol New repository seperti yang ditunjukan pada gambar dibawah ini.

Pada halaman berikutnya, isi Repository name bebas, jika memakai spasi maka akan diganti menjadi dash (-). Pilih Public, atau pilih Private jika kamu punya dollar untuk bayar Private Repo silahkan saja hehe 🙂

Biarkan yang lain seperti pada gambar, lalu klik button Create repository

Pada halaman berikutnya, terdapat 3 opsi untuk mengisi repo yang baru saja kamu buat. Pada latihan kali ini, karena kita sudah mempunyai local repo, maka kita tinggal mengikuti opsi ke 2.

Untuk melihat semua remote repo yang ada pada local repo kita gunakan perintah

$ git remote -v

Karena kita belum mempunyai remote repo maka tidak akan muncul apa-apa seperti ini:

Untuk menambah remote baru, kita gunakan perintah:

$ git remote add namaremote https://alamat-remote

Kita copy saja perintah yang ada di GitHub seperti ini

Untuk mem-paste-kan di Git Bash perlu perlakuan khusus, kita klik kanan dan pilih Paste seperti gambar diatas, atau kita tekan shortcut Shift+Insert

origin adalah istilah penamaan yang umum digunakan, yang menandakan asal, atau remote repo utama/default. Jadi namanya tidak harus selalu origin, boleh bebas, misalnya github seperti ini:

Push

Untuk melakukan push / setor kode / upload kode ke remote repo, kita gunakan perintah berikut:

$ git push -u namaremote namabranch
atau
$ git push namaremote namabranch

-u dapat diganti juga dengan –set-upstream, berfungsi untuk menambah info upstream atau tracking untuk setiap branch yang up-to-date atau sukses dilakukan push, yang berguna ketika melakukan perintah lain seperti git pull. Jadi direkomendasikan menambah opsi -u setiap kali melakukan push ke remote repository

Kita coba push branch master ke repository github yang tadi kita buat dengan perintah:

$ git push -u origin master

Lalu masukan username & password GitHub kita, popup login ini hanya akan muncul satu kali saja ketika pertama kali melakukan push ke GitHub per user id.

Jika proses push berhasil, maka akan muncul seperti gambar dibawah ini.

Dan jika kita refresh url GitHub repo kita, maka akan terupdate seperti ini:

Klik link commits seperti yang ditunjukan pada gambar diatas, maka akan muncul log commit kita seperti ketika kita gunakan perintah git log.

Clone

Clone atau menduplikasi kode dari remote repo adalah hal yang biasa dilakukan ketika kita bekerja dalam sebuah tim, terutama untuk anggota tim baru yang ikut membantu pekerjaan dalam sebuah project aplikasi.

Untuk melakukan cloning dari remote repo ke local/laptop/komputer digunakan perintah:

$ git clone https://alamat-remote

1. Jika kamu melakukan cloning dengan perintah berikut:

$ git clone https://github.com/wisnuhafid/latihan-git.git

maka akan membuat folder latihangit secara otomatis

2. Jika kamu tambahkan nama folder setelah url remote repo seperti ini:

$ git clone https://github.com/wisnuhafid/latihan-git.git latihan2

Maka akan melakukan cloning ke folder dengan nama latihan2

3. Jika kamu membuat folder baru lalu menjalankan git bash dari sana, dan menambahkan titik (.) setelah url remote repo seperti ini:

$ git clone https://github.com/wisnuhafid/latihan-git.git .

Maka akan melakukan cloning pada folder tempat git bash dijalankan tadi

Oke, Close semua Git Bash dan jalankan Git Bash Here dari desktop, dan lakukan cloning dengan 3 cara diatas.


Penutup

Oke, jika kamu melakukan semua langkah yang saya jelaskan diatas, maka saat ini kamu sudah bisa dibilang menguasai basic dari penggunaan Git untuk development sebuah aplikasi atau website.

Apakah kurang dari 1 jam ? silahkan comment dibawah ya 🙂 saya yakin lebih hihi

Next time akan saya lanjutkan dengan pembahasan Git lebih mendalam seperti Pull, Merge, Branching Strategy, dll.

See You Later, and Good Luck

Write a Comment

Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  1. Terimakasih kang Wisnu 😀

    Penjelasan di atas mengenai dasar GIT sangat membantu dan begitu jelas sehingga saya gampang memahaminya. Saya tunggu artikel selanjutnya hehe

    • Hi Mas Ali, terima kasih sudah membaca, jangan lupa untuk terus dipraktekan berulang kali agar lebih mahir ya 🙂 sip artikel selanjutnya nanti agak advanced bahasan Git nya, ditunggu saja 😀

  2. Terimakasih bang, sangat membantu
    Walaupun saya menggunakan gitlab sebagai contoh kasus tapi tetap berhasil. Sekali lagi terimakasih bang Wisnu 🙂
    Semoga Allah selalu berikan kesehatan