Git
Version control
Pengenalan Git
Apa itu Git
- Sistem kontrol versi untuk melacak perubahan pada kode
- Menjamin seluruh riwayat perubahan tersimpan
- Memudahkan kolaborasi tanpa konflik kode Contoh: Tim pengembang menyimpan seluruh riwayat perubahan aplikasi di Git sehingga bisa kembali ke versi sebelumnya kapan saja.
Repositori
- Wadah penyimpanan seluruh file dan riwayat proyek
- Terdiri dari repositori lokal dan remote
- Dibuat dengan
git initataugit cloneContoh: Mengetikgit initpada folder proyek untuk mulai melacak perubahan.
Commit
- Rekaman perubahan yang disimpan ke riwayat proyek
- Membutuhkan pesan deskriptif untuk menjelaskan perubahan
- Hanya menyimpan file yang sudah masuk ke staging area
Contoh:
git commit -m "Menambahkan fitur login"
Branch
- Cabang pengembangan terpisah dari branch utama
- Memungkinkan pengembangan fitur tanpa mengganggu kode utama
- Dapat digabung kembali menggunakan merge
Contoh: Membuat branch
feature-authuntuk mengembangkan fitur autentikasi.
Merge
- Proses menggabungkan perubahan dari satu branch ke branch lain
- Menyelesaikan konflik kode jika perubahan bertabrakan
- Umumnya dilakukan ke branch utama setelah fitur selesai
Contoh:
git merge feature-authuntuk menggabungkan fitur kemain.
Clone
- Menyalin repositori remote ke lokal
- Mengambil seluruh file dan riwayat commit
- Biasanya langkah awal untuk mulai berkolaborasi dalam proyek
Contoh:
git clone https://github.com/nama/proyek.git
Push & Pull
- Push mengirim commit dari lokal ke remote
- Pull mengambil commit baru dari remote ke lokal
- Menjaga sinkronisasi antara developer dalam satu proyek
Contoh:
git push origin mainuntuk mengunggah perubahan ke GitHub,git pulluntuk mengambil pembaruan terbaru.
###Staging Area
- Area persiapan sebelum commit dibuat
- Menentukan file mana yang akan masuk dalam commit
- Dikelola dengan
git addContoh:git add index.jsuntuk memasukkan file ke staging sebelum commit.
.gitignore
- Menentukan file/folder yang tidak dilacak Git
- Berguna untuk mengabaikan file sensitif atau hasil build
- Meminimalkan repositori agar tetap bersih dan ringan
Contoh: Menulis
node_modules/dalam.gitignoreuntuk mengabaikan folder tersebut.
Remote
- Lokasi repositori yang disimpan di server online
- Memungkinkan kolaborasi lintas perangkat dan tim
- Contoh platform: GitHub, GitLab, Bitbucket
Contoh:
git remote add origin https://github.com/nama/proyek.gituntuk menghubungkan repositori lokal ke remote.
Perintah-perintah dalam git
git init
- Membuat repositori Git baru di folder lokal
- Membuat folder
.gituntuk menyimpan riwayat versi - Langkah awal sebelum mulai melacak perubahan kode
Contoh:
git init
git clone
- Mengambil repositori remote ke komputer lokal
- Menyalin seluruh file dan riwayat commit
- Dipakai untuk mulai berkolaborasi pada project
Contoh:
git clone https://github.com/user/project.git
git add
- Memasukkan file ke staging area
- Menentukan perubahan yang akan ikut dalam commit
- Bisa add per file atau seluruh folder
Contoh:
git add index.jsataugit add .
git commit
- Menyimpan perubahan dari staging ke riwayat proyek
- Membutuhkan pesan agar perubahan mudah dipahami
- Identitas penulis commit otomatis tercatat
Contoh:
git commit -m "menambahkan fitur login"
git status
- Menampilkan status file di repositori
- Memberi tahu file yang berubah, belum di-add, atau siap di-commit
- Membantu memastikan apa yang akan di-commit
Contoh:
git status
git log
- Menampilkan daftar riwayat commit
- Menunjukkan penulis, tanggal, dan pesan commit
- Bisa digunakan untuk menelusuri perubahan lama
Contoh:
git log
git branch
- Menampilkan daftar branch
- Membuat atau menghapus branch
- Digunakan untuk memisahkan pengembangan fitur
Contoh:
git branch feature-auth
git switch / git checkout
- Berpindah branch ke branch lain
- checkout juga bisa untuk memulihkan file lama
- switch lebih khusus untuk berpindah branch
Contoh:
git switch feature-authataugit checkout feature-auth
git merge
- Menggabungkan perubahan dari satu branch ke branch lain
- Menyelesaikan konflik bila ada bagian kode bertabrakan
- Umumnya dilakukan setelah fitur selesai dibuat
Contoh:
git merge feature-auth
git push
- Mengirim commit dari repo lokal ke remote
- Membutuhkan akses dan remote yang terhubung
- Dipakai untuk men-submit hasil kerja ke server
Contoh:
git push origin main
git pull
- Mengambil commit terbaru dari remote ke lokal
- Menggabungkan perubahan ke workspace developer
- Menjaga sinkronisasi antar anggota tim
Contoh:
git pull
git fetch
- Mengambil pembaruan remote tanpa menggabungkannya
- Dipakai untuk mengecek perubahan remote terlebih dahulu
- Digunakan sebelum merge manual
Contoh:
git fetch
git reset
- Mengembalikan perubahan dalam staging atau commit
- Bisa reset soft/mixed/hard tergantung kebutuhan
- Berbahaya bila digunakan pada commit publik
Contoh:
git reset --hard HEAD~1
git revert
- Membuat commit baru untuk membatalkan commit tertentu
- Aman untuk repositori publik
- Tidak menghapus riwayat commit sebelumnya
Contoh:
git revert 3g2bd10
git stash
- Menyimpan perubahan sementara tanpa commit
- Membersihkan workspace agar bisa pindah branch
- Stash dapat dikembalikan kapan saja
Contoh:
git stashlalugit stash apply