В настоящее время я нахожусь на ветке foo
, и я хочу объединить изменения с ветки bar
, которая, по-видимому, считается частью истории foo
, из-за причин, которые сложно объяснить.Сила слияния в ветке в git
К сожалению, следствием является то, что если я бегу
git checkout foo
git merge bar
я буду получать сообщения Already up-to-date
хотя есть изменения в отрасли bar
, что я хочу, чтобы попасть в отделение foo
.
Я рассмотрел два возможных решения.
Одна из возможностей - просто проверить bar
, скопировать ее в другое место, проверить foo
, а затем вручную выполнить слияние. Это будет работать, но я бы предпочел менее ручное решение, если таковое существует.
Другая возможность - сделать обратное слияние, то есть слить foo
в bar
. К сожалению, когда я попробовал это, автомат git точно стирает эти изменения в bar
, которые я хочу сохранить и заменить их изменениями от foo
, что нежелательно.
Как я могу заставить мерзавец притворяться bar
в будущем и foo
в прошлом, чтобы позволить слияние bar
в foo
?
Являются ли обе или фоновые удаленные ветви или локальные? –
@ AzizShaikh, оба местные. – merlin2011
Не могли бы вы нарисовать какое-нибудь искусство ASCII из ветвей, чтобы объяснить, почему требование Гит ('уже обновлено') не так? –