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 mainLangkah Perbaikan
- Pull dengan rebase:
git pull --rebase origin main. Commit-mu "diangkat" lalu ditaruh di atas commit terbaru dari remote. History tetap linear dan rapi. - Selesaikan konflik bila muncul (lihat artikel merge conflict), lanjutkan dengan
git rebase --continue. - Push lagi:
git push origin main. Sekarang push-mu fast-forward dan diterima. - Kapan force push boleh? Hanya di branch pribadimu yang tidak dipakai orang lain, dan kamu paham risikonya. Tidak pernah di
mainatau branch tim. - Pencegahan: biasakan
git pullsebelum mulai coding setiap hari.