Некоторое время назад я приобрел проект у стороннего производителя, на которого я не влияю.
Я передал Version 1
я получил в свой репозиторий без изменений.
После этого я внес изменения в их файлы и зафиксировал их тоже.
Недавно я получил архив с обновлениями, сделанными упомянутой выше третьей стороной.
Они начались с Version 1
Я получил ранее и сделал Version 2
изменяя много файлов.
Теперь мне нужно:
Отслеживать сторонние изменения (Version 1 -> Version 2
).
Удобно объединить свои изменения в мой проект.
Я попробовал следующее:
Создать ветвь update
из начального коммита ветки master
, равного Version 1
.
Отправьте полученные мной обновления в ветку update
.
Слияние update
в `master.
У этого способа есть недостатки, которые я бы хотел решить:
Скажем, я изменился file_A
некоторое время назад.
file_A
также был изменен третьей стороной, и его изменения помечены самой последней датой в моем хранилище, потому что я только что зафиксировал их.
Когда я объединяю ветви, некоторые их изменения могут просто перезаписать мои, потому что они не конфликтуют (их коммит сделан после моего).
Единственное, что я могу сделать, - это вручную пересмотреть все измененные файлы.
Полагаю, что принятие Version 2
в прошлом (сразу после Version 1
) решило бы мою проблему, вызвав конфликты в каждом файле, который мы оба изменили.
В целом, я думаю, что маркировка всех файлов, в которых мы оба сделали изменения, как конфликты, сработает в моем случае, но любые советы приветствуются.
Вот визуальный график того, что у меня сейчас:
master: V1---A1---A2
\
update: ------------V2
Чего я хочу достичь:
master: V1---V2---A1'---A2'