Застосовується для 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
Примітка: якщо у вас є кілька комітів місцевого сховища, вам потрібно стиснути їх за один коміт, щоб уникнути кількох об’єднань.