Recraftory

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 init atau git clone Contoh: Mengetik git init pada 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-auth untuk 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-auth untuk menggabungkan fitur ke main.

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 main untuk mengunggah perubahan ke GitHub, git pull untuk mengambil pembaruan terbaru.

###Staging Area

  • Area persiapan sebelum commit dibuat
  • Menentukan file mana yang akan masuk dalam commit
  • Dikelola dengan git add Contoh: git add index.js untuk 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 .gitignore untuk 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.git untuk menghubungkan repositori lokal ke remote.

Perintah-perintah dalam git

git init

  • Membuat repositori Git baru di folder lokal
  • Membuat folder .git untuk 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.js atau git 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-auth atau git 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 stash lalu git stash apply