Github "Pembaruan ditolak karena remote berisi pekerjaan yang tidak Anda miliki"

176

Saya membuat repo baru, mengkloningnya, menambahkan file ke direktori, menambahkannya dengan add -A, melakukan perubahan, dan ketika saya mencoba untuk mendorong menggunakan git push <repo name> mastersaya mendapat "Pembaruan ditolak karena remote berisi pekerjaan yang tidak Anda miliki".

Ini sepertinya tidak masuk akal karena ini adalah repo baru dan hanya berisi file readme.

nodwj
sumber

Jawaban:

308

Ini terjadi jika Anda menginisialisasi repo github baru dengan READMEdan / atau LICENSEfile

git remote add origin [//your github url]

//pull those changes

git pull origin master 

// or optionally, 'git pull origin master --allow-unrelated-histories' if you have initialized repo in github and also committed locally

//now, push your work to your new repo

git push origin master

Sekarang Anda dapat mendorong repositori ke github. Pada dasarnya, Anda harus menggabungkan file-file yang diinisialisasi baru dengan pekerjaan Anda. git pullmengambil dan menggabungkan untuk Anda. Anda juga dapat mengambil dan menggabungkan jika itu cocok untuk Anda.

palerdot
sumber
7
Saya membuat video YouTube dengan penjelasan yang lebih terperinci dan dua cara yang disarankan untuk menghindari masalah ini sejak awal.
Kevin Markham
16
Untuk perintah penggabungan, saya perlu menggunakangit pull origin master --allow-unrelated-histories
Luciano Marqueto
Saya menjadi "fatal: menolak untuk menggabungkan sejarah yang tidak berhubungan"
Sergi
4
@Sergi trygit pull origin master --allow-unrelated-histories
palerdot
101

Kesalahan mungkin terjadi karena struktur kode yang berbeda yang Anda komit dan yang ada di GitHub. Ini menciptakan konflik yang dapat diselesaikan oleh

git pull

Gabungkan penyelesaian konflik:

git push

Jika Anda mengonfirmasi bahwa kode baru Anda baik-baik saja, Anda dapat menggunakan:

git push -f origin master

Di mana -fsingkatan "force commit".

Kartikey Kumar Srivastava
sumber
13
'git push -f master asal' -ini membantu
Saurabh
4
git push -f menimpa riwayat jarak jauh dengan riwayat lokal Anda, hati-hati saat menggunakannya. Terutama pada repositori publik.
Andre
updates-were-rejectedjuga terjadi jika Anda membuat perubahan pada github repo di remote, misalnya: membuat beberapa perubahan pada file readme menggunakan github gui. Dan kemudian mencoba mendorong pekerjaan baru Anda ke github, itu akan menunjukkan pesan ini mengatakan bahwa perubahan yang Anda buat di jarak jauh tetapi tidak ada secara lokal.
Deke
13

Jika ini adalah dorongan pertama Anda

ubah saja

git push <repo name> master

ubah seperti ini!

git push -f <repo name> master
Mahyar
sumber
1
Ini membuang file seperti awalnya dibuat dalam asal. Alih-alih menggunakan git pullsebelum untuk mendapatkan file jarak jauh dan menggabungkan komit Anda kemudian. Sama seperti negara jawaban yang diterima
JayJay
@ jayjaybricksoft Terima kasih atas komentar Anda. Ini adalah dorongan pertama, jadi mengganti file asal adalah OK.
Mahyar
2

Jawaban yang diberikan tidak bekerja untuk saya.

Saya punya repo kosong di GitHub dengan hanya file LICENSE dan satu komit secara lokal. Apa yang berhasil adalah:

$ git fetch
$ git merge --allow-unrelated-histories
Merge made by the 'recursive' strategy.
 LICENSE | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 LICENSE

Juga sebelum mergeAnda mungkin ingin:

$ git branch --set-upstream-to origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.
koral
sumber
0

Saya mengikuti langkah-langkah ini:

Tarik master:

git pull origin master

Ini akan menyinkronkan repo lokal Anda dengan repo Github. Tambahkan file baru Anda dan kemudian:

git add .

Komit perubahan:

git commit -m "adding new file  Xyz"

Akhirnya, dorong master asal:

git push origin master

Refresh Github repo Anda, Anda akan melihat file yang baru ditambahkan.

Darshan Jain
sumber
0

Jika Anda menggunakan Visual S2019, buat cabang lokal baru seperti yang ditunjukkan di bawah ini, dan kemudian dorong perubahan ke repo VS2019 cabang lokal

ptsivakumar
sumber