Saya mendapatkan pesan ini saat mendorong ke repositori github. Bisakah Anda memberi tahu saya prosedur langkah demi langkah untuk memperbaikinya? Saya hanya mendorong sekali dan berhasil. Tapi, ketika saya memperbarui proyek dan mencoba untuk mendorong komit kedua saya, itu menunjukkan "master menolak non-percepat-maju" dan tidak mengizinkan saya untuk mendorong. Tolong jelaskan prosedurnya.
89
Jawaban:
Saya memiliki masalah yang sama dan saya bisa memperbaikinya. afk5min benar, masalahnya adalah cabang tempat Anda menarik kode telah berubah pada repositori jarak jauh. Sesuai dengan praktik git standar ( http://git-scm.com/book/en/Git-Basics-Working-with-Remotes ), Anda perlu (sekarang) menggabungkan perubahan tersebut di repositori jarak jauh ke dalam perubahan lokal Anda sebelum Anda bisa berkomitmen. Ini masuk akal, ini memaksa Anda untuk mengambil perubahan lain dan menggabungkannya ke dalam kode Anda, memastikan bahwa kode Anda terus berfungsi dengan perubahan lain yang ada.
Pokoknya, ke tangga.
Konfigurasikan 'ambil' untuk mengambil cabang yang awalnya Anda tarik.
Ambil cabang jarak jauh.
Gabungkan cabang jarak jauh itu ke cabang lokal Anda.
Lakukan perubahan (gabung) di repo lokal Anda.
Dorong perubahan ke repo jarak jauh.
Secara terperinci...
Dalam gerhana, buka tampilan 'Git Repositories'.
Pastikan Anda melihat repositori lokal Anda dan dapat melihat repositori jarak jauh sebagai subfolder. Dalam versi saya, ini disebut Remote, dan kemudian saya dapat melihat proyek jarak jauh di dalamnya.
Cari panah hijau yang menunjuk ke kiri, ini panah 'ambil'. Klik kanan dan pilih 'Configure Fetch'.
Anda harus melihat URI, pastikan bahwa itu mengarah ke repositori jarak jauh.
Lihat di bagian pemetaan referensi dari pop-up. Punyaku kosong. Ini akan menunjukkan referensi jarak jauh mana yang ingin Anda ambil. Klik 'Tambahkan'.
Ketik nama cabang yang perlu Anda ambil dari repositori jarak jauh. Milik saya adalah 'master' (btw, dropdown di sini akan bagus !!, untuk saat ini, Anda harus mengetiknya). Lanjutkan melalui pop-up, akhirnya mengklik 'Selesai'.
Klik 'Simpan dan Ambil'. Ini akan mengambil referensi jarak jauh itu.
Lihat di folder 'Cabang' dari repositori lokal Anda. Anda sekarang harus melihat cabang jarak jauh itu di folder jarak jauh. Sekali lagi, saya melihat 'master'.
Klik kanan pada cabang lokal di folder 'Lokal' dari 'Cabang', yang diberi nama 'master'. Pilih 'Merge', lalu pilih cabang jarak jauh, yang diberi nama 'origin / master'.
Proses melalui penggabungan.
Lakukan perubahan apa pun ke repositori lokal Anda.
Dorong perubahan Anda ke repositori jarak jauh.
Pergi dan nikmati minuman yang enak, beri selamat pada dirimu sendiri. Ambil sisa hari libur.
sumber
Merge
di master dan kemudian klik kanan lagi pada proyekpush branch Master
bekerjaDalam kasus saya, saya memilih
Force Update
kotak centang sambil mendorong. Ini bekerja seperti pesona.sumber
Sementara itu (saat Anda memperbarui proyek Anda), komit lain telah dibuat ke cabang 'master'. Oleh karena itu, Anda harus menarik perubahan tersebut terlebih dahulu untuk dapat mendorong perubahan Anda.
sumber
Berlaku untuk Eclipse Luna + Eclipse Git 3.6.1
SAYA,
Dan saya menghadapi masalah ini dengan EGit dan inilah cara saya memperbaikinya ..
Ya, seseorang melakukan perubahan sebelum saya melakukan perubahan saya. Jadi perubahannya ditolak. Setelah kesalahan ini, perubahan benar-benar dilakukan ke repositori lokal. Saya tidak ingin hanya
Pull
mengubah karena saya ingin mempertahankanlinear history
seperti yang ditunjukkan dalam - Dalam kasus apa `git pull` bisa berbahaya?Jadi, saya melakukan langkah-langkah berikut
proyek Git yang bersangkutan
Fetch from Upstream
- itu mengambil pembaruan jarak jauh (referensi dan objek) tetapi tidak ada pembaruan yang dibuat secara lokal. untuk info lebih lanjut lihat Apa perbedaan antara 'git pull' dan 'git fetch'?Rebase...
- ini membuka popup, klik untukPreserve merges during rebase
melihat mengapaApa sebenarnya yang dilakukan "rebase --preserve-merges" git (dan mengapa?)
Rebase button
conflict(s)
, lanjutkan ke langkah 6 lagi langkah 11Rebase Result
popup akan muncul, klik padaOK
file comparator
akan terbuka, Anda perlu memodifikasileft side file
.Git Staging
tampilanstage the changes
. yaituadd to index
Rebase
->Continue
. ulangi 7 sampai 10 sampai semua konflik diselesaikan.History
tampilan, pilih baris komit Anda dan pilihPush Commit
Rebase Commits of local.......
kotak centang dan klik berikutnya. rujuk mengapa - Git: rebase ke cabang pengembangan dari huluFinish
Catatan: jika Anda memiliki beberapa komit repositori lokal, Anda perlu memadatkannya dalam satu komit untuk menghindari banyak penggabungan.
sumber
Konfigurasi Setelah menekan kode ketika Anda mendapatkan pesan yang ditolak, klik pada konfigurasi dan klik Tambah spesifikasi seperti yang ditunjukkan pada gambar ini
Drop down dan klik pada ref / heads / yourbranchname dan klik Add Spec lagi
Pastikan Anda memilih pembaruan paksa
Terakhir simpan dan dorong kode tersebut ke repo
sumber
Buka tampilan git:
1- pilih proyek Anda dan pilih gabung 2- Pilih pelacakan jarak jauh 3- klik ok
Git akan menggabungkan cabang jarak jauh dengan repositori lokal
4 - lalu dorong
sumber
Kesalahan ini berarti bahwa repositori jarak jauh memiliki komit lain dan telah melangkah lebih cepat dari cabang lokal Anda.
Saya mencoba melakukan git pull diikuti dengan git push. Jika Tidak ada perubahan yang bertentangan, git pull mendapatkan kode terbaru ke cabang lokal saya sambil menjaga perubahan saya tetap utuh.
Kemudian git push mendorong perubahan saya ke cabang master.
sumber
Saya telah menemukan bahwa Anda harus melakukan commit terbaru dari git. Jadi ini adalah langkah-langkah yang harus diambil: 1) pastikan Anda belum mengerjakan file yang sama, jika tidak, Anda akan mengalami kesalahan DITY_WORK_TREE. 2) tarik perubahan terbaru. 3) lakukan pembaruan Anda.
Semoga ini membantu.
sumber
sumber