Tutorial Git

Galih_tra
5 min readMar 1, 2022

--

Instal terlebih dahulu software GIT

Buka website ini dan download installer GIT untuk Windows.

Masuk ke folder yang akan dibuatkan menjadi repository, kemudian klik kanan > pilih Git Base Here

folder

Jalankan perintah berikut ini di terminal:

git config --global user.name "John Smith"
git config --global user.email "example@email.com"

git config
Konfigurasi informasi Git untuk pengguna dan system lokal

Menggunakan git pada Visual Studio Code
Agar mempermudah, kita akan menjadikan Visual Studio Code sebagai default editor untuk Git dan default diff tool

git config --global core.editor "code --wait"
git config --global diff.tool "default-difftool"
git config --global diff.tool.cmd "code --wait --diff \$LOCAL \$REMOTE"

Membuat Repositori

Mulai repositori baru

  • git init
    Perintah ini digunakan untuk membuat repositori baru. Caranya:
git init
  • git add
    Perintah git add bisa digunakan untuk menambahkan file ke staging area.
git add <nama file> // untuk file yang spesifik 
git add . // untuk file yang lebih dari satu
  • git rm
    Gunakan perintah ini untuk mengeluarkan file dari staging area.
git rm --cached <nama file>
  • git status
    Perintah git status menampilkan daftar file yang berubah bersama dengan file yang ingin di tambahkan atau di-commit.
git status
  • git commit
    Perintah git commit digunakan untuk melakukan commit pada perubahan ke head. Ingat bahwa perubahan apapun yang di-commit tidak akan langsung ke remote repository.
git commit –m “Isi dengan keterangan untuk commit”

Jika file sebelumnya sudah di add atau sudah ditambahkan ke stagging area bisa menggunakan perintah ini.

git commit –am “update commit”
  • git log
    Dengan menjalankan peritah ini akan menampilkan daftar commits yang ada di branch beserta detail-nya. Contoh outputnya adalah:
commit 15f4b6c44b3c8344caasdac9e4be13246e21sadw 
Author: Alex Hunter <alexh@gmail.com>
Date: Mon Oct 1 12:56:29 2016 -0600

Jika ingin melihat commit terakhir bisa menambahkan -angka commit terakhir seperti

git log -3

Jika ingin melihat daftar commit yang spesifik pada file tertentu

git log --<nama file>
  • git checkout
    Berpindah ke cabang tertentu dan memperbarui direktori yang sedang dikerjakan. Ini bisa kita gunakan untuk mengembalikan kode di masa lalu dan memperbarui kode.
git checkout 15f4b // lima digit pertama dari commit hash 
git checkout 15f4b --<nama file> // jika ingin merubah untuk satu file saja
src: https://www.petanikode.com/

Perubahan Berkelompok

Menggunakan Branch untuk Mencegah Konflik

src: https://www.petanikode.com/

Bayangkan kamu sedang bekerja dengan tim pada suatu repositori Git. Repositori ini dikerjakan secara bersama-sama.

Kadang… akan terjadi konflik, karena kode yang kita tulis berbeda dengan yang lain.

Misalnya, Si A menulis kode untuk fitur X dengan algoritma yang ia ketahui. Sedangkan si B menulis dengan algoritma yang berbeda.

Lalu mereka melakukan commit, dan kode sumber jadi berantakan. Anggota tim yang lain menjadi pusing.

Agar tidak terjadi hal yang seperti ini, kita harus membuat cabang (branch) tersendiri.

Misalnya, si A akan mengerjakan fitur X, maka dia harus membuat cabang sendiri. Si A akan bebas melakukan apapun di cabangnya tanpa menggangu cabang utama (master).

src: https://www.petanikode.com/

Sekarang setiap orang memiliki cabangnya masing-masing. Mereka bebas bereksperimen.

Misal si B sudah selesai membuat fitur di Branchfitur_register. Sekarang si B ingin Menggabungkannya dengan cabang master (utama).

src: https://www.petanikode.com/
  • git branch
    Perintah git branch bisa digunakan untuk me-list. Untuk menampilkan semua branch yang ada di repository, gunakan:
git branch

Membuat branch baru

git branch [nama_branch]

Melihat history atau perjalanan branch menggunakan sebuah graph(tampilan visualisasi bentuk graph seperti di network graph pada github).

git log --all --decorate --oneline --graph 

Jikalau perintah terlalu panjang, kita bisa menggunakan alias. Sehingga penulisan kode cukup memanggil graph saja.

alias graph="git log --all --decorate --oneline --graph"
graph // sesudah menggunakan alias
  • git checkout branch
    Perintah git checkout bisa digunakan untuk pindah HEAD antar satu branch ke yang lainnya. Misalnya, dari branch master ke branch test
git checkout test <nama_branch>
src: https://www.petanikode.com/

Git Merge

Ada dua jenis merge

  1. Fast forward
  2. Three-way merge
contoh merge Fast forward

Fast forward, terjadi ketika branch yang ingin kita gabungkan(merge) berada dalam satu jalur langsung atau direct path

contoh merge Three-way merge

Three-way merge, terjadi ketika branch yang ingin kita gabungkan(merge) tidak berada dalam satu jalur langsung. Jadi kita perlu membuat commit baru dahulu untuk merge.

Untuk perintah kedua jenis merge sama saja namun di belakang layar kedua hal ini berbeda.

  • git merge
    Perintah merge digunakan untuk menggabungkan sebuah branch ke branch master. Gunakan:
git merge <nama_branch>
  • git branch -d
    Untuk menghapus branch
git branch -d <nama_branch>
  • git branch merged
    Untuk mengetahui branch yang sudah di merged
git branch --merged

Git Checkout Branch

perintah ini digunakan untuk berpindah dan membuat cabang. Ini bisa kita gunakan untuk membuat perubahan baru berdasarkan kode di masa lalu.

src: https://www.petanikode.com/

Misalnya kita ingin membuat cabang baru berdasarkan kondisi kode di masa lalu,maka kita bisa menggunakan perintah:

git checkout -b nama_branch_baru <nomer_commit> // 7 angka hash pertama 

Maka nanti cabang baru akan terbentuk dari commit sebelumnya.

Menyelesaikan Merge Conflict

  • Si A commit push ke branch X. Si B, yang sudah memiliki commit di branch X mencoba pull. Ada perubahan yang tidak konsisten, terjadi merge conflict.
  • Si A merge perubahannya dari branchnya ke master. Si B lalu mencoba merge perubahannya dari branchnya ke master. Ada perubahan yang tidak konsisten, terjadi merge conflict.

Jika terjadi merge conflict, git terminal akan memberikan sebuah pesan sebagai berikut:

Untuk menyelesaikannya, kamu pergi ke file yang ditandai conflict lalu sunting di bagian yang ditandai konflict. Bagian yang conflict ditandai sebagai berikut:

...private String home() {
<<<<<<< HEAD
return "rumah";
=======
return "house";
>>>>>>> your-branch
}
...

Jadi kamu edit manual, commit, dan merge conflict teratasi!

--

--

No responses yet