Git добавить точку слияния в прошлое - PullRequest
0 голосов
/ 24 июня 2018

Недавно мы начали использовать Git вместо CVS.У нас есть ветки "разработка" и "выпуск".Несколько дней назад коллега должен создать выпуск - это означает слияние изменений из ветви разработки в ветку выпуска.

Но он не использовал команду слияния, вместо этого он вручную обновил все измененные файлы в ветви выпуска (этикоторые были изменены в ветке разработки с момента последнего выпуска) и сделали обычный commit / push (я бы назвал это «fake-merge»).

В результате я не вижу «точку слияния» в графе веток,Теперь при попытке объединить несколько коммитов из ветви исправлений (исправление было создано из ветви разработки) в ветку релиза, Git хочет выдвинуть все 1000+ коммитов с момента последнего выпуска, хотя в действительности ветвь релиза имеет все эти изменения.

После фиксации с фальшивым слиянием в ветке релиза имеется несколько новых коммитов и много коммитов в ветви разработки.

Как решить эту проблему?Можно ли как-нибудь «добавить слияние назад во времени»?

Редактировать:

X--D1--D2--...--D1000--DD1--DD2--...---DD10-- ...  -- ... -- DD20 (develop branch)
 \                 "\"                     \               \ /
  \                 "\" fake-merge          -hotfix--H1--H2-H3
   \                 "\"                                     \
    -R1----------------R2-----------R3-----------------------R4 (release branch)

В коммит R2 включены все изменения от D1 до D1000, но в git графе отсутствует линия соединения между D1000 и R2, поскольку программист меняет все файлы вручную (как он делал это в cvs) и не использовал git merge.

Когда я попытался создать R4, я понял, что отсутствует слияние - соединение D1000 и R2 в git graph, потому что gitтеперь собирается нажать все коммиты D1 - D1000-DD10-H3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...