PROA

Professional Academy

Pengenalan Linux Command & Git

Agenda

CLI

Makhluk aneh macam apakah ini?

Command Line Interface (CLI) adalah sebuah tampilan antarmuka yang dinavigasikan dengan menuliskan perintah, bukan dengan menggunakan gestur mouse / tampilan GUI.

Dunia hitam dan putih !

Tipe-tipe CLI

  • CMD
  • PowerShell
  • Bash

CMD

CMD PowerShell Bash
Untuk Windows Untuk sistem admin, berdasarkan .NET Framework Untuk Unix / Linux
Merupakan default di Windows Built-in di Windows sejak 2007 ke atas Default di WSL dan Unix / Linux serta macOS (before Big Sur)

Linux Command

Yuk buka terminal !

Windows buka dengan Git Bash

Linux dan macOS buka dengan Terminal

Perintah man

Merupakan perintah untuk melihat manual dari perintah yang ingin digunakan

man whoami - Untuk melihat manual / kegunaan dari perintah whoami

Bekerja dengan directory

Perintah Deskripsi
pwd print working directory, menjelaskan posisi tempat kita berada sekarang
mkdir make directory, membuat suatu folder
ls list, menampilkan isi dari folder sekarang
cd change directory, pindah ke directory yang lainnya
rm -rf remove recursive force , menghapus file / folder secara paksa (tanpa konfirmasi)

Bekerja dengan files

Perintah Deskripsi
touch Perintah untuk membuat sebuah file baru pada folder yang sedang dituju
code Perintah untuk membuka VSCode pada folder yang sedang dituju

Untuk bisa menggunakan perintah code, kita harus menginstall VSCode terlebih dahulu dan mendaftarkan VSCode pada Environment Variable

Buka VSCode, tekan CTRL + Shift + P, lalu ketik Shell Command: Install 'code' command in PATH lalu tekan ENTER

Mau lebih lengkap bacanya?

dev.to/awwsmm/101-bash-commands-and-tips-for-beginners-to-experts-30je

Mau belajar dengan bermain?

briandavidhall.com/bashy

Git

  • Tool yang sering digunakan dalam pengembangan perangkat lunak
  • Wajib dikuasai oleh programmer zaman kekinian
  • Tapi... ini apaan sih?

Git (ii)

  • Sistem pengontrol versi (Version Control System)
  • Diciptakan oleh Linus Torvald (Pembuat OS Linux)
  • Mencatat setiap perubahan file pada proyek yang dikerjakan (baik sendiri maupun ramai-ramai)
  • Dikenal dengan distributed revision control

Manfaat Git

  • Mesin waktu dari kode yang dituliskan di dalam folder (repository)
  • Menyimpan riwayat perubahan file dalam bentuk sejumlah commit, bahkan bisa melihat dilakukan oleh siapa dan kapan
  • Bisa membuat cabang dari fitur kode yang akan dibuat, tanpa perlu dilakukan di tempat utama yang kita miliki, disebut dengan istilah branch

Manfaat Git (ii)

  • Setelah cabang dirasa ingin diimplementasikan ke kode utama, bisa melakuan penggabungan atas kode yang sudah dibuat, disebut dengan merge

Github

  • Sebuah layanan komputasi awan untuk menyimpan & mengelola repositori git
  • Diakuisisi oleh Microsoft pada tahun 2018
  • Bisa menaruh unlimited proyek yang bersifat publik maupun privat

gh

  • Sebuah tool command-line yang dibuat oleh github
  • Digunakan untuk mempermudah hidup apabila menggunakan platform github

Istilah dalam Git

repo(sitory) Folder project kita berada
remote sumber lain yang memiliki repo, di luar komputer kita
clone mengambil repo dari sumber remote
commit menyimpan / merekam (snapshot) kode dari repo
branch cabang dari sebuah commit
checkout proses untuk berpindah dari satu commit / satu cabang ke commit / cabang lainnya
merge proses untuk menggabungkan branch
push mengirimkan commit ke repo (biasanya remote repo)
pull mengambil commit dari repo (biasanya remote repo)

Istilah dalam GitHub

fork(ing) membuat kopi / duplikat dari repo publik orang lain (beserta rekam jejaknya)
(sebagai jembatan antara repo original dengan repo yang diduplikat)
pull request permintaan untuk menggabungkan (merge) kode
(umumnya digunakan ketika ingin menggabungkan kode repo kita ke repo sumber fork)

Demo

Mohon registrasi github terlebih dahulu pada link ini

Demo - Lokal Repo to Github

Pada bagian demo ini kita akan menggunakan github sebagai tempat kita menaruh kode secara remote

Unduh git terlebih dahulu di sini

Demo - Lokal Repo to Github (ii)

Setelah proses instalasi, kita akan konfigurasi git
git config --global user.name "Nama Lengkap"
git config --global user.email "Email yang digunakan"
Perintah di atas akan mengkonfigurasi nama dan email yang digunakan untuk melakukan commit ke dalam git

Demo - Lokal Repo to Github (iii)

Selanjutnya kita akan membuat repository

(repository adalah tempat penyimpanan kode di dalam git)
  1. Buka terminal yang digunakan di sistem operasi masing masing (cmd, pwsh, bash, zsh)
  2. Buat sebuah folder untuk memulai proyek
  3. Ketikkan perintah git init
  4. Apabila kita melihat hidden foldernya pada proyek yang dibuat, akan terbentuk sebuah folder dengan nama .git

Demo - Lokal Repo to Github (iv)

  1. Membuka folder yang sudah dibuat tadi dengan menggunakan VSCode
  2. Membuat sebuah file baru dengan nama index.js
  3. Menuliskan kode untuk menghasilkan output Halo, namaku xxx
  4. Membuka terminal pada VSCode
  5. Menuliskan perintah berikut: git add .
  6. Menuliskan perintah berikut: git commit -m "feat: ini commit-an pertamaku"

Demo - Lokal Repo to Github (v)

  1. Membuat repository baru pada github
  2. Repository Name (nama repositori): repo-pertama
  3. description: Ini adalah repo pertamaku
  4. Repository Visibility: public
  5. Tekan tombol Create Repository

Demo - Lokal Repo to Github (vi)

  1. Akan diberikan halaman pembuka repo kosong pada github, lihat bagian Push an existing repo from the command line
  2. Ketikkan 3 baris perintah tersebut pada terminal lokal kita
  3. Refresh halaman github tadi kemudian lihat hasilnya.

Demo - Github Repo to Lokal

Kita akan mencoba untuk membuat repo terlebih dahulu pada github kemudian memodifikasinya di lokal

Demo - Github Repo to Lokal (ii)

  1. Membuat repo yang baru pada github dengan nama repo-kedua
  2. Pada bagian Add .gitignore, pilih template dengan nama Node
  3. Pada bagian Choose a license, pilih MIT License
  4. Apabila sudah, tekan tombol Create repository

Demo - Github Repo to Lokal (iii)

  1. Pada halaman github, pilih tombol Code, kemudian tekan tombol Copy
  2. Pada terminal, ketik perintah git clone [paste link github tadi, tanpa kurung siku ini yah !]

Demo - Github Repo to Lokal (iv)

  1. Buka folder yang sudah di-clone tersebut dengan menggunakan VSCode
  2. Pada terminal VSCode, kita akan membuat cabang baru dengan menggunakan git checkout -b branch-baru
  3. Pada VSCode buat sebuah file baru dengan nama index.js kemudian masukkan perintah untuk menuliskan Halo, aku repo kedua, dibuat oleh xxx
  4. Lakukan add, commit dan push dengan perintah sebagai berikut
git add .
git commit -m "feat: ini pada branch-baru"
git push -u origin branch-baru
  1. Refresh kembali halaman github kemudian lihat hasilnya, masih kosong bukan?
  2. Pada halaman github, pindah ke halaman branch-baru

Demo - Github Repo to Lokal (v)

Demo - gh

Pada bagian demo ini kita akan menggunakan gh tools untuk mempersingkat pembuatan repo di github

Unduh gh terlebih dahulu di sini

Demo - gh (ii)

  1. Pada terminal, login via gh dengan menggunakan gh auth login
  2. What account do you want to log into? GitHub.com
  3. What is your preferred protocol for Git operations? HTTPS
  4. Authenticate Git with your GitHub credentials? Y
  5. How would you like to authenticate GitHub CLI? Login with a web browser
  6. Copy one-time code, kemudian tekan Enter
  7. Apabila semua berjalan baik baik saja, seharusnya di terminal seperti ini

Demo - gh (iii)

  1. Buka terminal, pindah ke folder kosong
  2. Membuat repo kosong pada github dengan perintah sebagai berikut
  3. gh repo create repo-ketiga --public --gitignore Node --license mit --clone
    • --public - Membuat repo publik
    • --gitignore Node - Membuat .gitignore berdasarkan template NodeJS
    • --license mit - Membuat license sesuai dengan template MIT
    • --clone - Membuat repo di github sekaligus clone ke folder lokal yang kita miliki
  4. Selanjutnya kita tinggal melakukan hal hal yang seharusnya kita lakukan...
  5. Apabila ingin clone repo saja, bisa menggunakan gh repo clone xxx
Jauh lebih mudah bukan?

QnA

Waktunya Tantangan

Klik di sini

Hint: Tantangan

  • Forking hanya bisa dilakukan di github saja
    • Buka dan Login ke situs github.com
    • Buka repository yang ingin diforking
    • Tekan tombol Fork di kanan atas
    • Setelah di Fork, akan ada sebuah repository baru di profile Anda
    • clone repo yang diforking tersebut ke komputer Anda
    • Buka Folder yang telah diclone tersebut di komputer Anda
    • Buat sebuah branch baru dengan nama yang diharapkan
    • Lakukan modifikasi data, kemudian commit dan push
    • Buka github.com kembali, kemudian lakukan PR dari repository yang Anda miliki ke repository yang diharapkan

Referensi

  • https://medium.com/@fahmiprasetiiio/belajar-git-untuk-pemula-7625c686c68f
  • https://www.atlassian.com/git/tutorials/what-is-version-control
  • https://www.atlassian.com/git/tutorials/what-is-git
  • https://www.youtube.com/watch?v=lTMZxWMjXQU&list=PLFIM0718LjIVknj6sgsSceMqlq242-jNf
withered-flowers (2022)