Saya telah mengedit repositori GIT saya melalui Git Online. Setelah saya mencoba mendorong perubahan kode lokal saya, saya mendapat kesalahan:
Git push failed, To prevent from losing history, non-fast forward updates were rejected.
Bagaimana cara memperbaikinya?
Jawaban:
Tarik perubahan terlebih dahulu:
sumber
git pull
:? Remote sama denganorigin
, sehingga benar-benar berjalan:git pull origin
. Bukankah seharusnya itu memperbarui semua cabang?Tambahkan --force ke baris perintah Anda jika Anda yakin ingin mendorong. Misalnya gunakan
git push origin --force
(Saya merekomendasikan baris perintah karena Anda akan menemukan lebih banyak dukungan dari pengguna lain dengan baris perintah. Juga ini mungkin tidak dapat dilakukan dengan SmartGit.) Lihat situs ini untuk informasi lebih lanjut: http://help.github.com/ remote /sumber
--force
jika Anda adalah satu-satunya yang menggunakan cabang itu. Itu memang menyebabkan masalah saat berbagi cabang dengan pengembang lain.Sebelum mendorong, lakukan git pull dengan opsi rebase. Ini akan mendapatkan perubahan yang Anda buat secara online (dalam asal Anda) dan menerapkannya secara lokal, lalu menambahkan perubahan lokal Anda di atasnya.
Sekarang, Anda dapat mendorong ke jarak jauh
Untuk informasi lebih lanjut, lihat penjelasan Git rebase dan Bab 3.6 Git Branching - Rebasing .
sumber
git pull --rebase
berakhir denganThere is no tracking information for the current branch. Please specify which branch you want to rebase against.
Saya mengalami kesalahan yang sama, cukup tambahkan "--force" ke perintah, itu berhasil
sumber
--force
dapat membantu.Saya punya masalah yang sama.
Alasannya adalah, bahwa cabang lokal saya entah bagaimana kehilangan pelacakan ke cabang jarak jauh.
Setelah
dan menyelesaikan konflik penggabungan, saya bisa mendorong.
sumber
Anda dapat menambahkan --force-with-lease ke perintah, itu akan berhasil.
--force bersifat merusak karena tanpa syarat menimpa repositori jarak jauh dengan apa pun yang Anda miliki secara lokal. Tapi --force-with-lease memastikan Anda tidak menimpa pekerjaan orang lain.
Lihat info selengkapnya di sini .
sumber
(Satu) Solusi untuk Netbeans 7.1: Coba tarik. Ini mungkin juga akan gagal. Sekarang lihat log (biasanya sekarang ditampilkan di IDE). Ada satu baris / lebih yang berbunyi:
"Penarikan gagal karena file ini:"
Cari file itu, hapus (buat backup sebelumnya). Biasanya ini adalah file .gitignore, jadi Anda tidak akan menghapus kode. Ulangi dorongan tersebut. Semuanya harus bekerja dengan baik sekarang.
sumber
Menggunakan
--rebase
opsi ini berhasil untuk saya.git pull <remote> <branch> --rebase
Lalu dorong ke repo.
git push <remote> <branch>
Misalnya
git pull origin master --rebase
git push origin master
sumber
Saya memiliki masalah yang sama. Saya diselesaikan dengan
sumber
checkout
akan menimpa perubahan ini atau setidaknya tidak akan menyertakannya dalam push.Inilah yang berhasil bagi saya. Itu bisa ditemukan di dokumentasi git sini
Jika Anda berada di cabang yang Anda inginkan, Anda dapat melakukan ini:
sumber
Menemukan masalah yang sama, untuk mengatasinya, jalankan
git
perintah berikut .git pull {url} --rebase
git push --set-upstream {url} master
Anda harus sudah membuat repositori di github terlebih dahulu.
sumber
Terkadang, saat menarik diri dari git Anda, HEAD terlepas. Anda dapat memeriksanya dengan memasukkan perintah:
Lebih baik pindah ke cabang Anda dan lakukan penarikan baru dari cabang Anda masing-masing.
sumber