Berlaku untuk Eclipse Luna + Eclipse Git 3.6.1
SAYA,
- repositori git kloning
- membuat beberapa perubahan dalam kode sumber
- perubahan bertahap dari Git Staging View
- akhirnya, lakukan dan Dorong!
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 mempertahankan linear history
seperti yang ditunjukkan dalam - Dalam kasus apa `git pull` bisa berbahaya?
Jadi, saya melakukan langkah-langkah berikut
- dari perspektif Repositori Git, klik kanan pada
proyek Git yang bersangkutan
- pilih
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'?
- pilih
Rebase...
- ini membuka popup, klik untuk Preserve merges during rebase
melihat mengapa
Apa sebenarnya yang dilakukan "rebase --preserve-merges" git (dan mengapa?)
- klik
Rebase button
- jika ada / ada
conflict(s)
, lanjutkan ke langkah 6 lagi langkah 11
- sebuah
Rebase Result
popup akan muncul, klik padaOK
file comparator
akan terbuka, Anda perlu memodifikasi left side file
.
- setelah Anda selesai menggabungkan perubahan dengan benar, buka
Git Staging
tampilan
stage the changes
. yaituadd to index
- pada tampilan yang sama, klik
Rebase
-> Continue
. ulangi 7 sampai 10 sampai semua konflik diselesaikan.
- dari
History
tampilan, pilih baris komit Anda dan pilihPush Commit
- pilih
Rebase Commits of local.......
kotak centang dan klik berikutnya. rujuk mengapa - Git: rebase ke cabang pengembangan dari hulu
- klik
Finish
Catatan: jika Anda memiliki beberapa komit repositori lokal, Anda perlu memadatkannya dalam satu komit untuk menghindari banyak penggabungan.