У меня были изменения в проекте локально, однако я знал, что в удаленном репозитории (источнике) также были некоторые изменения, которых у меня еще не было локально.
Я фиксирую свои локальные изменения как обычно (на главном сервере) с комментариями (-m). Назовем этот коммит ПЕРВЫМ КОМИТЕТОМ.
git fetch origin
На всякий случай:
git checkout master
git rebase origin/master
Есть конфликты в 2-х файлах. Конфликты помечаются маркерами конфликта как нормальные (‹************************************ Верхняя половина показывает, что находится в исходной / основной версии, а нижняя половина показывает, что находится в моей основной версии. После закрывающего маркера (т.е. >>>>>>) он показывает часть строки, которая находится в исходной / основной версии (видимо, это патч или что-то в этом роде). Я этого не понимаю.
Я делаю оба файла такими, какие хочу, и удаляю все теги маркеров конфликтов и т. Д.
git add .
git commit
с комментарием (-m), в котором я говорю, что разрешил некоторые конфликты слияния. Назовем эту фиксацию «КОНФЛИКТ РАЗРЕШЕНИЕ КОММИТАЦИЕЙ».git rebase --continue
жалуется на отсутствие изменений. Я не могу продолжать, конфликтов больше нет.git status
говорит: «Все конфликты устранены», выполните «git rebase --continue». Единственный вариант - «git rebase --skip» пропустить «патч», что бы это ни было.git rebase --skip
после того, как статус говорит, что ваша ветка опережает origin / master на 1 фиксацию, рабочее дерево очищается и т. Д. Хорошо, как и ожидалось.git log
Показывает все коммиты в том порядке, в котором я хочу их, за исключением того, что нигде не видно «ПЕРВОГО КОМИТЕТА», а вверху отображается только «КОНФЛИКТ УРЕГУЛИРОВАТЬ». С коммитами, которые пришли из origin / master прямо под ним. Изменения все еще присутствуют во всех файлах (как в тех, в которых были конфликты, так и в других, которые были изменены), поэтому я не потерял фактические изменения.
Почему с комментариями, которые я там дал, не отображается «ПЕРВЫЙ ОБЪЯВЛЕНИЕ»?