Я только что сделал плохо с моим git-репо, и я не знаю, как это решить.
В основном у меня есть две ветви, скажем, develop
и feature
, которые я постоянно обновляю. В один прекрасный момент я изменил пару файлов на ветке develop
. Мне также потребовались эти изменения в ветке feature
, поэтому вместо того, чтобы делать это снова, я сделал слияние между двумя ветвями, применяя только эти изменения (и отбрасывая все другие изменения / конфликты файлов). После этого я только что сделал некоторые коммиты только в ветку feature
.
Это сработало, как я хотел, но с большой проблемой. Теперь мне нужно полностью объединить две ветви (develop
в feature
), но когда я пытаюсь это сделать, ничего не происходит. Я на самом деле знаю, почему ничего не происходит (git думает, что две ветви уже объединены, и единственные изменения находятся в ветви feature
. Это то же самое, что я пытаюсь объединить только что созданную ветку), но мне все еще нужно завершить объединение со старыми изменениями.
Чтобы лучше понять это в примере ситуации:
develop o--c--1-- --2-- --o-
\ \
feature \ --o-- --b-- -\m--o-
b: commit before wrong partial merge
1: changes applied in the m commit (after wrong merge
2: changes NOT applied in the m commit (after wrong merge
m: result of partial merge
Как объяснено в коммите m
, у меня есть только изменения 1
, а не изменения 2
. Если я попытаюсь объединить develop
с feature
, то 2
изменения будут потеряны.
Я придумал пару решений, но я не уверен, что что-то из этого действительно может работать:
- Я могу оформить коммит
b
, чтобы объединить все изменения из develop
. Затем я могу зафиксировать изменения и объединить их с текущей feature
веткой
- Я мог бы создать совершенно новую ветку (скажем,
temp
) из коммита c
. Затем я могу скопировать все содержимое ветки feature
во временную ветвь, не объединяя, а просто копируя файлы. Затем я фиксирую полученные изменения и объединяю новую ветку temp
с develop
. Наконец, я могу скопировать полученный контент в ветку feature
, чтобы он оставался выровненным.
Я думаю, что второй вариант действительно мог бы работать, но я не совсем уверен.
Чтобы закончить, во втором варианте я попытался сохранить ветку feature
, чтобы сохранить репо в порядке. Но мне не нужно сохранять ветку feature
, так как я бы удалил ее рано или поздно, когда функция фактически будет завершена.
Кто-нибудь знает лучший способ помочь мне с этой проблемой?
Заранее спасибо