2014-11-12 2 views
1

У меня сложилась следующая ситуация: большое изменение было перенесено на главную ветку по ошибке (ее следовало перевести в новую ветку). Поиск в Интернете (в основном SO) предполагал, что единственный способ отменить это означает возврат к предыдущей версии, поэтому я сделал это. Затем я начал новую ветку из ревизии, которая была отправлена ​​на главный по ошибке.Как слить отмененное изменение?

Теперь проблема в том, что я не могу объединить основную ветку и новую ветку, потому что она вызывает удаление многих необходимых файлов из новой ветви. Есть ли способ сохранить эти файлы из новой ветви, объединив ее с основной?

? 
|\ 
E F 
| | 
C D 
|/ 
B 
| 
A 

А, В, С, Е - главная ветвь

D, F - другая ветвь на основе пересмотра B

С - возвращаясь от В к А

? - Я хочу сохранить изменения из ветви D, F, но я не могу, потому что я перевернул большинство из них в редакции. C#

ответ

3

Я предполагаю вместо «возврат», на самом деле означает «отступ»? Поэтому я предполагаю, что «C» - это резерв «B»?

Что вы можете сделать, это следующее:

  1. отката 'C' снова. Это будет «отбрасывать резервную копию», поэтому он восстановит содержимое «B» (вам может понадобиться немного слияния).
  2. После выполнения задания «C» вы можете выполнить слияние с новой веткой.
+0

Я уверен, что раньше я использовал 'revert', а не' backout', но ваше решение сработало. Я имею в виду, снова я использовал 'revert', но так, как вы описали выше, и теперь я мог бы объединить все. – jahu

+1

Ах, да, возможно, вы вернули все свои файлы, а затем совершили это. «hg backout» в основном «фиксирует обратную фиксацию X». Если это фиксация была последней фиксацией, которую вы сделали, возврат всех ваших файлов будет иметь тот же эффект. – Mathiasdm

Смежные вопросы