Saya menggunakan Git untuk mengelola dua komputer dan pengembangan saya. Saya mencoba melakukan perubahan pada GitHub dan saya mendapatkan kesalahan.
Gagal mendorong beberapa referensi ke
<repo>
. Untuk mencegah Anda kehilangan riwayat, pembaruan non-maju ditolak. Gabungkan perubahan jarak jauh sebelum mendorong lagi.
Apa yang menyebabkan ini dan bagaimana saya bisa memperbaikinya?
EDIT:
Menarik repo mengembalikan yang berikut:
* branch master-> master (non-fast-forward) Sudah up-to-date
Mendorong masih memberi saya kesalahan yang disebutkan di atas.
git
version-control
Moshe
sumber
sumber
Jawaban:
GitHub memiliki bagian yang bagus yang disebut " Berurusan dengan kesalahan " non-fast-forward "
Git tidak dapat membuat perubahan pada remote seperti penggabungan maju-cepat, yang digambarkan oleh Referensi Visual Git seperti:
Hal ini tidak persis kasus Anda, tetapi membantu untuk melihat apa yang "cepat-maju" adalah (di mana
HEAD
dari cabang hanya pindah ke yang baru yang lebih baru komit)."
branch master->master (non-fast-forward) Already-up-to-date
" Biasanya untuk cabang lokal yang tidak melacak bagian lawan jarak jauh mereka.Lihat misalnya pertanyaan SO ini " git pull mengatakan yang terbaru tetapi git push menolak maju yang tidak cepat ".
Atau kedua cabang terhubung, tetapi tidak setuju dengan sejarah masing-masing:
Lihat " Cerita GIT yang tidak pernah berakhir - apa yang saya lakukan salah di sini? "
sumber
Ini berarti bahwa ada komit lain yang didorong ke repositori jarak jauh yang berbeda dari komit Anda. Anda biasanya dapat menyelesaikan ini dengan a
sebelum Anda mendorong
Pada akhirnya, "fast-forward" berarti bahwa komit dapat diterapkan langsung di atas pohon kerja tanpa memerlukan penggabungan.
sumber
Pembaruan fast-forward adalah di mana satu-satunya perubahan satu sisi adalah setelah komit terbaru di sisi lain, sehingga tidak perlu ada penggabungan. Ini mengatakan bahwa Anda perlu menggabungkan perubahan sebelum dapat mendorong.
sumber
Anda mungkin ingin menggunakan kekuatan dengan operasi dorong dalam hal ini
git dorong master asal - memaksa
sumber
Tidak pernah melakukan yang
git -f
harus dilakukanpush
karena hal itu dapat berakibat pada konsekuensi bencana nantinya.Anda hanya perlu melakukan salah satu
git pull
dari cabang lokal Anda.Ex:
dan kemudian lakukan
git push
sumber
Anda perlu menggabungkan dan menyelesaikan
conflicts locally
sebelum Anda mendorong perubahan Anda ke repo / fork jarak jauh.1) tarik (ambil dan gabungkan)
2) Dorong perubahan
Tetap Anda memiliki pilihan cepat untuk
push
secara paksa dengan menggunakan--force
opsi tetapi harus dihindari karena dapat mengakibatkan perubahan kehilangan atau berdampak buruk pada kontributor lainnya.sumber