GitGitPushKolaborasi5 mnt baca

Mengatasi failed to push: updates were rejected

Push ditolak karena remote lebih baru dari local. Kenapa terjadi dan cara sinkron yang aman.

1 · Gejala & Log Pesan Error

error.log
To github.com:OmmniDevv/OmniCode.git
 ! [rejected]        main -> main (non-fast-forward)
error: failed to push some refs to 'github.com:OmmniDevv/OmniCode.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart.

2 · Akar Penyebab Masalah

Remote Punya Commit yang Belum Kamu Punya

Git menolak push yang bukan fast-forward: artinya di GitHub ada commit (mis. temanmu push duluan, atau kamu push dari laptop lain) yang belum ada di repo lokalmu. Kalau Git memaksa push, commit-commit itu akan hilang dari history remote. Penolakan ini melindungi riwayat kerja tim.

Alur yang benar: tarik dulu, gabungkan, baru push. Jangan melawan dengan force push ke branch bersama.

3 · Solusi & Diff Kode

✕ Sebelum (bermasalah)

before
# ❌ JANGAN: menimpa kerja orang lain
git push --force origin main
# commit teman yang belum kamu pull akan HILANG dari GitHub

✓ Sesudah (diperbaiki)

after
# ✔ tarik + rebase, selesaikan konflik bila ada, lalu push
git pull --rebase origin main
# ... selesaikan konflik kalau muncul ...
git push origin main

Langkah Perbaikan

  1. Pull dengan rebase: git pull --rebase origin main. Commit-mu "diangkat" lalu ditaruh di atas commit terbaru dari remote. History tetap linear dan rapi.
  2. Selesaikan konflik bila muncul (lihat artikel merge conflict), lanjutkan dengan git rebase --continue.
  3. Push lagi: git push origin main. Sekarang push-mu fast-forward dan diterima.
  4. Kapan force push boleh? Hanya di branch pribadimu yang tidak dipakai orang lain, dan kamu paham risikonya. Tidak pernah di main atau branch tim.
  5. Pencegahan: biasakan git pull sebelum mulai coding setiap hari.