Застосовується для Eclipse Luna + Eclipse Git 3.6.1
Я,
- клоноване сховище git
- внесли деякі зміни у вихідний код
- поетапні зміни з Git Staging View
- нарешті, фіксуй і натискай!
І я зіткнувся з цією проблемою з EGit, і ось як я це виправив ..
Так, хтось вніс зміни до того, як я вніс свої зміни. Тож зміни відхиляються. Після цієї помилки зміни фактично передаються локальному сховищу. Я не хотів просто Pull
вносити зміни, бо хотів зберегти, linear history
як зазначено в - У яких випадках `git pull` може бути шкідливим?
Отже, я виконав наступні кроки
- з точки зору сховища Git, клацніть правою кнопкою миші на відповідний
проект Git
- select
Fetch from Upstream
- він отримує віддалені оновлення (посилання та об'єкти), але локальні оновлення не виконуються. для отримання додаткової інформації див. Яка різниця між "git pull" і "git fetch"?
- select
Rebase...
- це відкриває спливаюче вікно, клацніть Preserve merges during rebase
подивитися, чому
саме робить git "rebase --preserve-merges" (і чому?)
- натисніть на
Rebase button
- якщо є / є a
conflict(s)
, перейдіть до кроку 6, ще крок 11
- з'явиться
Rebase Result
спливаюче вікно, просто натисніть наOK
file comparator
відкриється, вам потрібно змінити left side file
.
- як тільки ви закінчите з об’єднанням змін правильно, перейдіть до
Git Staging
перегляду
stage the changes
. тобтоadd to index
- на тому ж поданні натисніть
Rebase
-> Continue
. повторюйте 7-10, поки всі конфлікти не будуть вирішені.
- з
History
подання виберіть рядок коміту та виберітьPush Commit
- встановіть
Rebase Commits of local.......
прапорець і натисніть далі. посилання чому - Git: перебазувати на гілку розвитку з вищого напрямку
- натисніть на
Finish
Примітка: якщо у вас є кілька комітів місцевого сховища, вам потрібно стиснути їх за один коміт, щоб уникнути кількох об’єднань.