Masalah mendorong kode baru di Github

147

Saya membuat repositori baru di Github yang hanya memiliki file Readme.md sekarang.

Saya memiliki proyek RoR yang baru dibuat yang ingin saya dorong ke repositori ini. Berikut ini adalah perintah yang saya berikan di Terminal saya untuk menjalankan ini bersama dengan kesalahan yang saya dapatkan.

git remote add origin https://github.com/aniruddhabarapatre/learn-rails.git

Setelah itu saya memasukkan nama pengguna dan kata sandi saya

git push -u origin master

Kesalahan ---

To https://github.com/aniruddhabarapatre/learn-rails.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/aniruddhabarapatre/learn-rails.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Ini adalah pertama kalinya saya mendorong kode saya ke repositori Github dan saya hilang dengan kesalahan. Saya mencari beberapa pertanyaan lain yang ditanyakan di sini, tetapi tidak ada yang memiliki masalah pertama kali.

Aniruddha
sumber

Jawaban:

167

Saat Anda membuat repositori di GitHub , Anda membuat README.md , yang merupakan komit baru .

Repositori lokal Anda belum tahu tentang komit ini. Karenanya:

Pembaruan ditolak karena kendali jarak jauh berisi pekerjaan yang tidak Anda miliki secara lokal.

Anda mungkin ingin menemukan untuk mengikuti saran ini:

Anda mungkin ingin terlebih dahulu menggabungkan perubahan jarak jauh (misalnya, ' git pull') sebelum mendorong lagi.

Itu adalah:

git pull
# Fix any merge conflicts, if you have a `README.md` locally
git push -u origin master
Johnsyweb
sumber
3
Yang saya lakukan adalah git pull master asal pertama kemudian dorong lagi.
Bagusflyer
12
dalam beberapa kasus Anda mungkin mendapatkan fatal: refusing to merge unrelated historiesdalam kasus seperti itu, Anda mengirim git pull --allow-unrelated-histories origin masterdan kemudian Anda mendorong sesuai jawaban di atas
TheLebDev
1
Tidak bekerja untuk saya. jarak jauh: Dorong ditolak. remote: remote: refs / heads / master: ...: diharapkan nama committer xxx tetapi ditemukan yyy. Saya melakukan git config --global user.email yyy dan masih tidak mengenali. Tidak bisa memaksakan apapun. !!!
Baruch Atta
284

Jika ini adalah dorongan pertama Anda

ubah saja

git push **-u** origin master

ubah seperti ini!

git push -f origin master
Van Mart
sumber
5
Ini menghapus file readme saya yang saya pasang di github terlebih dahulu. Sekarang sepertinya aku harus memperbaikinya lagi.
dongkrak
3
Anda bisa saja menambahkan peringatan bahwa -f memaksakan dorongan dan bisa mengacaukan timeline kode
ericksho
Ini adalah cara yang buruk, itu menyebabkan saya masalah, itu menghapus readme, yang tidak dibuat oleh saya, sekarang saya harus memanggil pengelola mengatakan kepadanya bahwa saya bodoh, maaf buat membaca saya lagi. :(
Mohammad Elsayed
62

⚡️ MUDAH: Yang Anda butuhkan adalah dorongan paksa. Karena Anda mungkin telah membuat readme.mdfile di Github dan Anda belum menariknya.

git push -f origin master

Dan ini GIF.

git push -f master asal

⚠️ WASPADALAH : Menggunakan forcedapat mengubah riwayat orang lain di proyek yang sama. Pada dasarnya, jika Anda tidak peduli dengan file yang dihapus untuk semua orang, silakan saja. Terutama jika Anda satu-satunya pengembang di proyek ini.

Ahmad Awais
sumber
1
Perhatikan bahwa pendekatan ini mengubah riwayat yang telah diambil oleh pengguna lain dari repositori ini. git push -f origin masterbukanlah kebiasaan yang baik untuk terbentuk.
Johnsyweb
1
Solusi ini mungkin menyelesaikan mendorong komitmen tetapi juga menghapus semua komitmen sebelumnya !.
twenk11k
2
Hati-hati dengan Github noobs ... Jika Anda telah membuat Readme.md via GitHub, perintah ini AKAN MENGHAPUS ITU karena mendorong perubahan baru Anda.
daCoda
Itu sebabnya sebagian besar orang mendarat di sini. -ftag menghapus file dan harus digunakan dengan hati-hati.
Ahmad Awais
34

Berikan dorongan paksa dengan perintah:

git push -f origin master
Samarth Shah
sumber
10
Perhatikan bahwa ini dapat menghapus komit sebelumnya, yang mungkin atau mungkin tidak diinginkan
Crashalot
8

Dengan asumsi bahwa Anda menambahkan file Readme.md melalui antarmuka yang disediakan oleh github, readme belum ada di folder lokal Anda. Oleh karena itu, ketika Anda mencoba untuk mendorong ke repo jarak jauh, Anda mendapatkan kesalahan, karena repo lokal Anda kekurangan file readme - itu "ketinggalan zaman", jadi untuk berbicara. Oleh karena itu, seperti yang disarankan dalam pesan kesalahan, coba "git pull" terlebih dahulu. Ini akan menarik readme dari repositori jarak jauh dan menggabungkannya dengan direktori lokal Anda. Setelah itu, Anda seharusnya tidak memiliki masalah mendorong ke repo jarak jauh (perintah yang Anda posting terlihat valid untuk saya)

Quercus
sumber
6

Ini terjadi ketika Anda mencoba untuk mendorong pada awalnya. Karena dalam repo GitHub Anda telah membacaMe.md atau hal baru lainnya yang tidak ada dalam repo lokal Anda. Pertama, Anda harus menggabungkan riwayat repositori github yang tidak terkait. Untuk itu

git pull origin master --allow-unrelated-histories

maka Anda bisa mendapatkan file lain dari repo (readMe.md atau yang lain) menggunakan ini

git pull origin master

Setelah itu

git push -u origin master

Sekarang Anda berhasil mendorong semua perubahan Anda ke dalam repositori Github. Saya bukan ahli dalam git tetapi setiap kali langkah ini bekerja untuk saya.

Chathuranga
sumber
5

Mengingat jika Anda belum melakukan perubahan dalam beberapa saat, mungkin melakukan ini akan berhasil untuk Anda.

git add files
git commit -m "Your Commit"
git push -u origin master

Itu berhasil untuk saya, semoga juga untuk Anda.

Rob Mcelvenny
sumber
3

jika Anda menggunakan git untuk mac di GUI Anda dapat memilih Respository-> Tarik atau "comm + shift + p" untuk "git pull" terlebih dahulu, kemudian terbitkan sumbernya.

zheng fuchao
sumber
3

Kesalahan ini terjadi ketika Anda mendorong data dari direktori lokal Anda ke repositori git jarak jauh Anda dengan mengikuti perintah git: git push -u origin master

Ketika direktori lokal dan git file direktori jauh saling bertentangan.

Solusi:

Setelah melakukan semua file untuk pementasan, ikuti langkah-langkah di bawah ini.

  1. Ambil file dari repositori jauh sebagai konfliknya dengan direktori kerja lokal.

    • git pull <remoter-url> <branch-name>
  2. Lakukan perubahan lagi.

    • git add -A
    • git commit -m ‘<comment>'
  3. Setelah berkomitmen, gabungkan file dengan kedua direktori yang dapat Anda gunakan

    • git push -u origin master

Ini akan memperbaiki masalah. Terima kasih.

Ravi
sumber
1

Saya memiliki masalah yang sama ... Saya menyelesaikannya seperti ini (saya bukan ahli git jadi saya tidak tahu apakah ini solusi yang tepat, tetapi berhasil bagi saya):

git pull origin master --allow-unrelated-histories
git merge origin origin/master
git rm README.md
git commit -m 'removed readme.md'
git push origin master
Marco Caggiano
sumber
0

Saya berjuang dengan kesalahan ini selama lebih dari satu jam! Di bawah ini adalah apa yang membantu saya menyelesaikannya. Semua ini sementara direktori kerja saya adalah repo yang telah saya kloning di sistem saya.

Jika Anda melakukan menambahkan file ke repositori Anda yang ada ** 1. Saya menarik semua yang telah saya tambahkan ke repositori saya ke folder GitHub saya:

git pull


Keluaran adalah- beberapa file readme file1 file2

  1. Saya menyalin (drag and drop) file baru saya (file yang ingin saya push) ke repositori kloning saya (GitHub repo). Ketika Anda akan melakukan repo ini, Anda akan melihat file lama dan baru Anda.

misalnya. beberapa file readme file1 file2 newfile1 newfile2

  1. git tambahkan "newfile1" "newfile2"

  2. [opsional] git status ini akan meyakinkan Anda jika file yang ingin Anda tambahkan dipentaskan dengan benar atau tidak, keluarannya


Pada master cabang Cabang Anda up-to-date dengan 'asal / master'. Perubahan yang harus dilakukan: (gunakan "git reset HEAD ..." untuk unstage)

    new file:   newfile1
    new file:   newfile2

5.git commit -m "deskripsi apa pun yang ingin Anda berikan" 6.git push

Dan semua file baru saya bersama dengan yang lama terlihat di repo saya.

Potatojaisiladki
sumber
0

Jawaban yang lebih sederhana adalah mengunggah file README.MD secara manual dari komputer Anda ke GitHub. Bekerja sangat baik untuk saya.

Bogdan Doicin
sumber
0

Saya menggunakan opsi Cabang, lalu klik kanan pada folder "remote / origin" dan kemudian klik "hapus cabang dari jarak jauh", lihat gambar di bawah ini:

foto

Kevin Anderson Gomes Cabral
sumber
0

Saya mendapat kesalahan ini di Azure Git, dan ini memecahkan masalah:

git fetch
git pull
git push --no-verify
canmustu
sumber