Saya mencoba untuk mendorong proyek saya (semua file di repositori baru). Saya mengikuti langkah-langkah tetapi ketika saya mendorong dengan git push -u origin master
saya mendapatkan kesalahan ini:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:asantoya/projectnewbies.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
Saya mendapatkan kesalahan ini berkali-kali dan tidak tahu apa yang harus dilakukan.
git push --force <remote_repository>
bekerja untukku.Jawaban:
Seperti yang dikatakan pesan kesalahan:
git pull
sebelum Anda mencobagit push
. Tampaknya cabang lokal Anda tidak sinkron dengan cabang pelacakan Anda.Bergantung pada aturan proyek dan alur kerja Anda, Anda mungkin juga ingin menggunakannya
git pull --rebase
.sumber
git push --force origin master
. Jika Anda mengalami masalah seperti itu lebih dari satu kali dalam hidup Anda, alur kerja proyek Anda rusak. Fitur harus dikembangkan di cabang dan digabung tanpa penerusan cepat dan jika fitur "gagal" Anda harus mengembalikan komit gabungan (sebaiknya lakukan pengujian di cabang integrasi terlebih dahulu sebelum Anda menggabungkan fitur untuk dikuasai). Tidak tahu tentang Eclipse.git pull origin trunk:master
?PEMBERITAHUAN: Ini tidak pernah direkomendasikan penggunaan git. Ini akan menimpa perubahan pada remote. Hanya lakukan ini jika Anda tahu 100% bahwa perubahan lokal Anda harus didorong ke master jarak jauh.
Coba ini:
git push -f origin master
sumber
git help push
: "Ini dapat menyebabkan repositori jarak jauh kehilangan komit; gunakan dengan hati-hati."perintah ini bekerja dengan baik untuk saya
sumber
Saya baru saja menerima kesalahan ini.
Saya membuat repositori github setelah membuat repositori git lokal saya jadi saya harus menerima perubahan ke lokal sebelum mendorong ke github. Dalam hal ini satu-satunya perubahan adalah file readme yang dibuat sebagai langkah opsional saat membuat repositori github.
URL repositori didapat dari sini di halaman proyek github:
Saya kemudian diinisialisasi ulang (ini mungkin tidak diperlukan)
Kemudian dorong:
sumber
Saya telah membuat repo baru di github dan saya memiliki masalah yang sama, tetapi juga memiliki masalah saat menarik, jadi ini bekerja untuk saya.
sumber
PERINGATAN:
Pergi untuk '
git pull
' bukanlah SELALU solusi, jadi berhati-hatilah. Anda mungkin menghadapi masalah ini (masalah yang disebutkan dalam Q) jika Anda dengan sengaja mengubah riwayat penyimpanan Anda. Dalam hal itu, git membingungkan perubahan riwayat Anda dengan perubahan baru di repo jarak jauh Anda. Jadi, Anda harus memilihgit push --force
, karena panggilangit pull
akan membatalkan semua perubahan yang Anda buat pada riwayat Anda, secara sengaja.sumber
Jika
git pull
tidak membantu, maka mungkin Anda telah mendorong perubahan Anda (A) dan setelah itu digunakangit commit --amend
untuk menambahkan beberapa perubahan lagi (B). Oleh karena itu, git berpikir bahwa Anda dapat kehilangan histori - ia mengartikan B sebagai komit yang berbeda walaupun berisi semua perubahan dari A.Jika tidak ada yang mengubah repo setelahnya
A
, maka Anda dapat melakukannyagit push --force
.Namun, jika ada perubahan setelah
A
dari orang lain:maka Anda harus mengubah kembali bahwa orang berubah dari
A
menjadiB
(C
->D
).atau memperbaiki masalah secara manual. Saya belum memikirkan bagaimana melakukannya.
sumber
gunakan perintah ini:
git pull --allow-unrelated-histories <nick name of repository> <branch name>
Suka:
git pull --allow-unrelated-histories origin master
kesalahan ini terjadi ketika proyek tidak memiliki leluhur yang sama.
sumber
gunakan brute force ;-) Kemungkinan besar Anda mencoba menambahkan folder lokal yang Anda buat sebelum membuat repo on git.
sumber
Ini karena Anda melakukan beberapa perubahan pada master Anda sehingga proyek meminta Anda untuk menarik terlebih dahulu. Jika Anda ingin mendorongnya, Anda dapat menggunakan brute force dengan mengetik ini:
Ingatlah untuk terlebih dahulu melakukan perubahan Anda:
sumber
Coba perintah ini: "git pull origin master"
Ini berhasil untuk saya.
Periksa tautan ini: https://help.github.com/articles/dealing-with-non-fast-forward-errors
sumber
Yang perlu Anda lakukan
jika outputnya seperti:
lalu lakukan
Pastikan Anda tidak memiliki komitmen yang tertunda karena memeriksa akan kehilangan semua perubahan yang tidak dilakukan.
sumber
! [ditolak] master -> master (non-fast-forward)
Jangan panik, ini sangat mudah diperbaiki. Yang harus Anda lakukan adalah mengeluarkan tarikan dan cabang Anda akan maju cepat:
$ git pull myrepo master
Kemudian coba lagi dorongan Anda dan semuanya akan baik-baik saja:
$ git push github master
sumber
Ini terjadi pada saya ketika saya sedang mengembangkan cabang dan cabang master saya tidak dengan pembaruan terbaru.
Jadi ketika saya mencoba untuk mendapatkan push dari mengembangkan cabang saya memiliki kesalahan itu.
Saya memperbaikinya dengan beralih ke cabang master, git pull, lalu kembali untuk mengembangkan cabang dan git push.
sumber
Saya punya masalah ini pada mesin pengembangan. The
dev
cabang mendorong-baik saja tapi yangmaster
cabang memberi saya (sementaragit push
ing ketika berada didev
cabang):Jadi saya mencoba:
Yang memberi saya:
Saya menemukan cabang master hilang
.git/config
dan menambahkan:Setelah itu
git push
juga bekerja dengan baik didev
cabang.sumber
Remote saya tidak sinkron dengan lokal sehingga ini bekerja untuk saya
git pull --rebase
dan pastikan ketika Anda melakukan
git pull
lagi itu harus mengatakan Sudah up to date dan sekarang Anda siap untuk mendorong ke asaldengan asumsi Anda sudah melakukannya
git remote add origin remote repository URL
melakukan
Tangkapan layar mengatakan itu semua
Atau Anda dapat melakukan ini
sumber
Saya memiliki masalah yang sama. Saya menggunakan Git Totoise. Klik Kanan -> TotoiseGit -> Bersihkan. Sekarang Anda dapat mendorong ke Github. Ini bekerja dengan baik dengan saya: D
sumber
Ini karena Anda telah membuat perubahan yang bertentangan pada masternya. Dan server repositori Anda tidak dapat memberi tahu Anda dengan kata-kata ini, sehingga memberikan kesalahan ini karena bukan masalah dia yang menangani konflik ini untuk Anda, jadi dia meminta Anda untuk melakukannya sendiri. Sebagai ?
1-
git pull
Ini akan menggabungkan kode Anda dari repositori ke kode master situs Anda. Jadi konflik ditunjukkan.2- memperlakukan konflik manual ini.
3 -
Dan presto, masalah Anda telah diatasi.
sumber
Satu-satunya yang saya dapat mengatasi masalah ini adalah menghapus repo lokal dan git dan membuat yang sama lagi di kedua ujungnya. Bekerja dengan baik untuk saat ini.
sumber
Jika ada yang mengalami kesalahan ini ketika mencoba untuk mendorong ke heroku maka ganti 'asal' dengan 'heroku' seperti ini: git push -f heroku master
sumber
Coba ini, dalam kasus saya ini berfungsi
sumber
Ini juga dapat disebabkan karena beberapa kesalahan nama yang disebabkan saat memberikan nama ke Repo. Jika salah satu dari jawaban di atas tidak berhasil. Ini bekerja untuk saya:
Hapus repo itu dan buat yang baru dan coba lagi perintah berikut:
jika tambahkan asal acara sudah ada gunakan ini sebagai gantinya:
sumber