Я разветвил чужой репозиторий на Bitbucket и внес некоторые изменения (и отправил их в свой разветвленный репозиторий). Тем временем первоначальный автор внес существенные изменения (почти переписал).
Я хочу обновить свое репо, чтобы оно было точно таким же, как у него (но с моими изменениями, все еще присутствующими в этом теге), таким образом, чтобы он мог легко получить мои новые изменения без того, чтобы предыдущие изменения, которые я сделал, ни на что не влияли.
Я перенес его изменения в свою локальную версию, что оставило меня с двумя головами. Я хочу просто взять его голову в качестве наконечника/по умолчанию. Я попытался решить эту проблему (на основе некоторых ответов SO), выполнив следующие действия:
hg update -r [myrev]
hg commit --close-branch
hg update -r [hisrev]
Это, казалось, привело меня в желаемое состояние. Мой рабочий каталог выглядит как его. Однако, когда я попытался hg push
, мне сказали, что это создаст несколько удаленных головок, и я не уверен, что это то, что я хочу (сообщение звучит пугающе!)
Итак, я сделал это правильно? Должен ли я форсировать толчок? Будет ли это делать то, что я хочу (например, сохранить копию моих изменений, чтобы я мог получить к ним доступ, но таким образом, чтобы это не мешало?). Если да, то был ли это лучший способ добиться этого?
hg push -f
), и, похоже, это сделало именно то, что я хочу. Единственная сложность заключалась в том, что моя закрытая ветка (которую, вероятно, не нужно было закрывать) имела последний коммит и поэтому стала наконечником. Я просто внес тривиальное изменение в открытую головку, и это исправило это. - person Danny Tuppeny   schedule 21.05.2011