Mengatasi error failed to push some refs to di git

Mengalami error “failed to push some refs to” saat akan mengupload project ke GitHub memang bisa membuat kita jengkel dan kebingungan.
Saya sendiri pernah mengalami hal ini ketika ingin melakukan push project ke GitHub menggunakan Git melalui aplikasi Termux. Awalnya terlihat sederhana, tetapi ternyata ada konflik antara repository lokal dan repository remote.
Jika kamu sedang mengalami error yang sama, tenang. Pada artikel ini kita akan membahas:
- Penyebab error failed to push some refs to di git
- Cara mengatasinya dengan benar
- Kapan boleh menggunakan
--force - Alternatif solusi yang lebih aman
- Tips agar error tidak terulang

Apa Itu Error “Failed to Push Some Refs To” di Git?
Error failed to push some refs to biasanya muncul ketika kita menjalankan perintah:
git push -u origin main
Lalu Git menampilkan pesan seperti:
! [rejected] main -> main (non-fast-forward)
error: failed to push some refs to 'https://github.com/username/repository.git'
Pesan ini berarti Git menolak push karena ada perbedaan antara repository lokal dan repository di GitHub (remote repository).
Penyebab Error Failed to Push Some Refs To
Secara umum, error ini terjadi karena:
1️⃣ Repository Remote Sudah Memiliki Commit
Misalnya:
Kita membuat repository baru di GitHub
GitHub otomatis membuat file README.md
Sementara di lokal kita juga sudah memiliki commit sendiri
Akibatnya, riwayat commit berbeda dan Git menolak push.
2️⃣ Ada Perubahan dari Orang Lain (Project Tim)
Jika kita bekerja dalam tim dan ada anggota lain yang sudah melakukan push terlebih dahulu, maka repository remote memiliki commit terbaru yang belum kita ambil.
Akibatnya, Git menolak push karena kita belum menyelaraskan perubahan tersebut.
3️⃣ Branch Tidak Sinkron
Kadang kita menggunakan branch main, sementara di GitHub masih menggunakan master, atau sebaliknya.
Dengan kata lain, kita mencoba push ke branch yang tidak sesuai dengan yang ada di remote repository.
Jika kita mencoba push ke branch yang tidak sesuai, Git akan menolak push karena tidak menemukan branch yang dimaksud.
Langkah Upload Project ke GitHub yang Biasanya Dilakukan
Biasanya kita melakukan langkah berikut:
git init
git add .
git commit -m "pesan commit"
git push -u origin main
Namun saat menjalankan git push -u origin main, muncul error failed to push some refs to. Atau, jika kita belum melakukan pull terlebih dahulu untuk menyelaraskan dengan repository remote, maka kita bisa juga mendapatkan error failed to push some refs to.
Lalu bagaimana cara mengatasinya?
Cara Mengatasi Error Failed to Push Some Refs To di Git
Berikut beberapa solusi yang bisa kita lakukan.
✅ Solusi 1: Gunakan Git Pull Terlebih Dahulu (Cara Aman)
Cara paling aman adalah melakukan pull terlebih dahulu:
git pull origin main
Jika muncul konflik, selesaikan konflik tersebut, lalu lakukan:
git add .
git commit -m "resolve conflict"
git push origin main
Cara ini sangat direkomendasikan terutama jika kita bekerja dalam tim.
⚠️ Solusi 2: Gunakan —force (Jika Benar-Benar Diperlukan)
Jika repository di GitHub memang belum memiliki data penting, kita bisa menggunakan:
git push --force origin main
Atau versi singkatnya:
git push -f origin main
Mengapa Bisa Berhasil?
Perintah —force memaksa Git untuk:
- Mengabaikan riwayat commit di remote
- Menimpa repository GitHub dengan versi lokal kita
⚠️ Bahaya Menggunakan —force
Perlu diingat:
Menggunakan --force bisa menyebabkan:
- Hilangnya commit orang lain
- Konflik dalam tim
- Riwayat project menjadi berantakan
Jadi gunakan hanya jika:
- Project milik sendiri
- Repository masih kosong
- Yakin tidak ada commit penting di remote
🔄 Alternatif yang Lebih Aman: Gunakan —force-with-lease
Daripada menggunakan —force, lebih aman menggunakan:
git push --force-with-lease origin main
Perintah ini akan memaksa push hanya jika tidak ada perubahan baru di remote sejak terakhir kita pull.
Atau dengan kata lain, tetap memaksa push, tetapi akan menolak jika ada perubahan baru di remote yang belum kita ketahui.
🧠 Solusi 3: Gunakan Branch Baru
Jika konflik terlalu kompleks, kita bisa membuat branch baru:
git checkout -b fitur-baru
git push origin fitur-baru
Kemudian buat Pull Request di GitHub untuk menggabungkan ke branch utama.
Ini cara yang lebih profesional jika bekerja dalam tim.
👥 Solusi 4: Komunikasi dengan Tim:
Jika kita bekerja dalam tim, sangat penting untuk berkomunikasi dengan anggota tim lainnya.
Pastikan untuk memberi tahu mereka ketika kita akan melakukan push ke repositori bersama, sehingga mereka dapat menghindari konflik yang tidak perlu.
📦 Pentingnya Backup Sebelum Force Push
Sebelum menjalankan:
git push --force origin main
Sebaiknya lakukan backup:
- Copy folder project
- Atau buat branch cadangan
git branch backup-sebelum-force
Langkah ini penting untuk menghindari kehilangan data yang tidak disengaja.
Tips Agar Error Tidak Terulang
- Selalu Lakukan Pull Sebelum Push: Biasakan untuk selalu melakukan
git pullsebelumgit pushuntuk menyelaraskan dengan repository remote. - Gunakan Branch untuk Fitur Baru: Buat branch baru untuk setiap fitur atau perubahan besar, sehingga meminimalisir konflik di branch utama.
- Komunikasi dengan Tim: Jika bekerja dalam tim, pastikan untuk berkomunikasi dengan anggota tim lainnya tentang perubahan yang akan dilakukan.
- Hindari Penggunaan —force: Gunakan
--forcehanya jika benar-benar diperlukan dan pastikan untuk melakukan backup terlebih dahulu. - Pelajari Git Lebih Dalam: Memahami konsep dasar Git seperti branching, merging, dan konflik akan membantu kita mengatasi masalah dengan lebih mudah.
- Gunakan Tools Git yang Memudahkan: Pertimbangkan untuk menggunakan tools Git seperti GitHub Desktop, SourceTree, atau GitKraken yang menyediakan antarmuka visual untuk mengelola repository dan meminimalisir kesalahan.
- Buat Commit yang Sering dan Deskriptif: Melakukan commit secara teratur dengan pesan yang jelas akan membantu kita melacak perubahan dan memudahkan proses debugging jika terjadi masalah.
- Selalu Cek Status Git: Gunakan
git statusuntuk memeriksa status repository sebelum melakukan push, sehingga kita bisa mengetahui apakah ada perubahan yang belum di-commit atau konflik yang perlu diselesaikan. - Gunakan .gitignore dengan Benar: Pastikan untuk menggunakan file
.gitignoreuntuk mengecualikan file atau folder yang tidak perlu di-upload ke repository, sehingga mengurangi risiko konflik dan menjaga repository tetap bersih. - Pelajari Cara Mengatasi Konflik: Memahami cara mengatasi konflik merge dengan benar akan membantu kita menyelesaikan masalah dengan lebih cepat dan efisien ketika terjadi konflik antara repository lokal dan remote.
- Gunakan Pull Request untuk Kolaborasi: Jika bekerja dalam tim, gunakan fitur Pull Request di GitHub untuk menggabungkan perubahan ke branch utama, sehingga memungkinkan review kode dan mengurangi risiko konflik.
- Jangan Ragu untuk Bertanya: Jika mengalami kesulitan atau tidak yakin dengan langkah yang akan diambil, jangan ragu untuk bertanya kepada rekan kerja atau mencari bantuan di komunitas GitHub atau forum pemrograman lainnya.
- Selalu Update Git: Pastikan untuk selalu menggunakan versi terbaru dari Git, karena pembaruan sering kali mencakup perbaikan bug dan peningkatan fitur yang dapat membantu mengurangi masalah saat melakukan push ke repository.
- Gunakan Branch Protection Rules: Jika bekerja dalam tim, pertimbangkan untuk menggunakan fitur Branch Protection Rules di GitHub untuk mencegah push langsung ke branch utama tanpa melalui proses review, sehingga menjaga kualitas kode dan mengurangi risiko konflik.
- Pelajari Cara Menggunakan Rebase: Memahami cara menggunakan
git rebasedapat membantu kita menyelaraskan riwayat commit dengan repository remote tanpa harus melakukan merge, sehingga mengurangi risiko konflik dan menjaga riwayat commit tetap bersih. - Gunakan Git Hooks: Pertimbangkan untuk menggunakan Git Hooks untuk menjalankan skrip otomatis sebelum melakukan push, seperti menjalankan tes atau memeriksa format kode, sehingga membantu menjaga kualitas kode dan mengurangi risiko masalah saat melakukan push ke repository.
- Jangan Lupa untuk Menarik Perubahan Terbaru: Jika kita bekerja dalam tim, pastikan untuk selalu menarik perubahan terbaru dari repository remote sebelum memulai pekerjaan, sehingga kita bisa bekerja dengan versi kode yang paling up-to-date dan mengurangi risiko konflik saat melakukan push.
- Gunakan Git Stash untuk Menyimpan Perubahan Sementara: Jika kita sedang bekerja pada perubahan yang belum selesai dan perlu melakukan pull untuk menyelaraskan dengan repository remote, gunakan
git stashuntuk menyimpan perubahan sementara, sehingga kita bisa melakukan pull tanpa kehilangan pekerjaan yang sedang dilakukan. - Pelajari Cara Menggunakan Git Bisect: Memahami cara menggunakan
git bisectdapat membantu kita menemukan commit yang menyebabkan masalah dengan lebih cepat, sehingga memudahkan proses debugging ketika terjadi masalah setelah melakukan push ke repository. - Jangan Lupa untuk Melakukan Review Kode: Jika bekerja dalam tim, pastikan untuk selalu melakukan review kode sebelum melakukan merge ke branch utama, sehingga membantu menjaga kualitas kode dan mengurangi risiko masalah saat melakukan push ke repository.
- Gunakan Git LFS untuk File Besar: Jika proyek kita melibatkan file besar seperti gambar atau video, pertimbangkan untuk menggunakan Git Large File Storage (LFS) untuk mengelola file tersebut, sehingga mengurangi risiko masalah saat melakukan push ke repository.
- Selalu Cek Log Git: Gunakan
git loguntuk memeriksa riwayat commit dan memastikan bahwa semua perubahan yang diinginkan sudah termasuk dalam commit sebelum melakukan push ke repository. - Gunakan Git Diff untuk Memeriksa Perubahan: Gunakan
git diffuntuk memeriksa perubahan yang telah dilakukan sebelum melakukan commit, sehingga kita bisa memastikan bahwa hanya perubahan yang diinginkan yang akan di-commit dan di-push ke repository. - Pelajari Cara Menggunakan Git Cherry-Pick: Memahami cara menggunakan
git cherry-pickdapat membantu kita memilih commit tertentu untuk di-apply ke branch lain, sehingga memudahkan proses integrasi perubahan tanpa harus melakukan merge seluruh branch. - Jangan Lupa untuk Menambahkan Remote Repository: Pastikan untuk selalu menambahkan remote repository dengan benar menggunakan
git remote add origin <url>sebelum melakukan push, sehingga kita bisa memastikan bahwa perubahan kita akan di-push ke repository yang tepat di GitHub.
Kesimpulan
Error failed to push some refs to di git terjadi karena adanya konflik antara repository lokal dan repository remote di GitHub.
Untuk mengatasinya kita bisa:
- Melakukan
git pull origin mainterlebih dahulu (cara paling aman) - Menggunakan
git push --force origin mainjika benar-benar diperlukan - Menggunakan
--force-with-leaseuntuk opsi yang lebih aman - Membuat branch baru jika bekerja dalam tim
Selalu berhati-hati saat menggunakan --force, terutama jika project dikerjakan bersama tim.
Semoga artikel ini membantu kita dalam mengatasi error failed to push some refs to di git tanpa panik dan tanpa kehilangan data penting.

