Merging — Git

Merge menggabungkan perubahan dari satu branch ke branch lain. Alur merge: Pindah ke branch tujuan (biasanya main) Jalankan git merge $ git checkout main $…

Merge menggabungkan perubahan dari satu branch ke branch lain.

Alur merge:

  1. Pindah ke branch tujuan (biasanya main)
  2. Jalankan git merge <branch-sumber>
$ git checkout main
$ git merge fitur-navbar

Jenis merge:

  1. Fast-forward — jika main tidak berubah sejak branch dibuat, cukup geser pointer:
main     ──●──●
                \
fitur-navbar     ●──● → main dipindahkan ke sini
  1. Merge commit — jika keduanya berubah, Git membuat commit khusus:
main         ──●──●──●──M (merge commit)
                  \    /
fitur-navbar       ●──●

Mekanisme 3-Way Merge

Saat merge commit dibuat, Git membandingkan tiga versi sekaligus:

Git mencari leluhur bersama otomatis dengan algoritma merge-base. Untuk tiap file:

Fast-forward vs merge commit:

Perintah Kapan Efek
git merge fitur default fast-forward jika bisa, else merge commit
git merge --ff-only fitur CI/production tolak jika perlu merge commit
git merge --no-ff fitur ingin jejak branch selalu buat merge commit
git merge --squash fitur rapikan ringkas jadi 1 commit (tanpa merge commit)

--no-ff berguna untuk menjaga "siapa merge branch apa" di history. --squash cocok untuk GitHub PR yang ingin history linear.

Yang akan kamu pelajari