Saya mendapatkan kesalahan berikut, ketika mencoba push Github pertama:
[rejected] master -> master (non-fast forward)
error: failed to push some refs to '[email protected]:me/me.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the 'non-fast forward'
section of 'git push --help' for details.
bagaimana cara memperbaikinya dan menggabungkan perubahan jarak jauh?
git pull
, lakukan commit lain dan selanjutnya akan bagusgit checkout other-branch; git pull; git push; git checkout branch-i-was-working-on
.Anda juga dapat menekan dengan menambahkan simbol + sebelum nama cabang Anda.
sumber
git reset --hard
Anda mungkin memiliki perubahan pada github yang tidak pernah Anda gabungkan. Cobalah
git pull
untuk mengambil dan menggabungkan perubahan, maka Anda harus bisa melakukan push. Maaf jika saya salah paham dengan pertanyaan Anda.sumber
Jika Anda "git pull" dan tertulis "Already up-to-date.", Dan masih mendapatkan error ini, mungkin karena salah satu cabang Anda yang lain tidak up-to-date. Coba beralih ke cabang lain dan pastikan cabang tersebut juga mutakhir sebelum mencoba "git push" lagi:
Beralih ke cabang "foo" dan perbarui:
Anda dapat melihat cabang-cabang yang Anda miliki dengan mengeluarkan perintah:
sumber
Anda dapat memaksanya untuk mendorong, tetapi harap lakukan ini HANYA ketika Anda yakin dengan apa yang Anda lakukan.
Perintahnya adalah:
sumber
Masalah ini juga dapat terjadi jika Anda memiliki tag yang bentrok. Jika versi lokal dan versi jarak jauh Anda menggunakan nama tag yang sama untuk komit yang berbeda, Anda dapat berakhir di sini.
Anda dapat mengatasinya dengan menghapus tag lokal:
sumber
Ketika saya mendapatkan kesalahan ini, saya mencadangkan seluruh folder proyek saya. Lalu saya melakukan sesuatu seperti
... tergantung pada nama cabang Anda (jika bukan master).
Lalu aku melakukannya
git pull --rebase
. Setelah itu, saya mengganti file yang ditarik dengan file proyek cadangan saya. Sekarang saya siap untuk melakukan perubahan saya lagi dan mendorong.sumber
1) Memaksa tarikan untuk menimpa perubahan lokal
Jika Anda tidak peduli tentang perubahan yang dilakukan secara lokal dan ingin mendapatkan kode dari repositori, Anda dapat memaksa penarikan. Ini akan menimpa semua perubahan lokal yang dilakukan di komputer Anda, salinan duplikat versi di repositori akan muncul.
Jalankan perintah berikut di IDE Anda:
Ini akan langsung menghancurkan semua perubahan lokal Anda jadi pastikan Anda tahu apa yang Anda lakukan dan tidak membutuhkan perubahan lokal Anda.
2) Menjaga kedua perubahan (lokal dan dari repo)
Jika Anda ingin menyimpan kedua perubahan (perubahan dilakukan secara lokal dan perubahan ada di repositori), Anda bisa menambahkan dan mengkomit perubahan Anda. Saat Anda menarik, jelas akan ada konflik gabungan. Di sini Anda dapat menggunakan alat bantu di IDE Anda (seperti Difftool dan mergetool) untuk membandingkan dua bagian kode dan menentukan perubahan mana yang harus dipertahankan dan mana yang harus dihapus. Ini adalah jalan tengah; tidak ada perubahan yang akan hilang sampai Anda menghapusnya secara manual.
sumber