На работе я использую свой рабочий адрес электронной почты при создании сообщений о коммитах, а дома я использую свою личную учетную запись для создания коммитов.
Я забыл изменить свой рабочий адрес электронной почты перед фиксацией и отправкой, а затем понял, что отправил коммит Merge
со своим личным адресом электронной почты, и я хотел бы в основном изменить это сообщение о фиксации на свой рабочий адрес электронной почты.
В Git
это очень легко, когда мне нужно сделать ребаз из определенного дочернего коммита, а затем принудительно нажать на него, и он прекрасно работает, но в Mercurial
это кажется более ограниченным, и я почти уверен, что должен быть способ, Поскольку я видел много похожих вопросов в Stackoverflow, таких как внесение изменений в коммит, я также прочитал некоторые статьи, используя некоторые из известных расширений Mercurial, таких как: histedit
, evolve
и rebase
.
Некоторые другие вещи, которые я пробовал, также не помогли:
- Использование
hgext.convert
создает новый репозиторий, который мне не нужен
и он также не смог завершиться в одном из моих наборов изменений.
- Использование
histedit
приводит к ошибке, что он не может изменять публичные изменения.
- Использование
hgext.mq
выдает ошибку, что не может импортировать слияние
пересмотр.
Почему это так сложно в ртути?
Одна из статей, которые я также проверил:
https://book.mercurial -scm.org / read / change-history.html
Обратите внимание, что я уже понимаю смысл этого и насколько это опасно, когда другие работают над этим хранилищем, поэтому, пожалуйста, постарайтесь сохранить это от меня :)
Еще одно замечание, что я обычно использую SourceTree
, а иногда и командную строку, поэтому, если вы человек SourceTree, я также был бы рад услышать ваши решения.
И, пожалуйста, постарайтесь не отмечать этот вопрос как дубликат, так как я уже использовал поиск и видел много разных решений, которые действительно не прояснили это.
Есть ли такой же способ, как в Git
, чтобы в основном перебазировать с определенного коммита и принудительного толчка, чтобы я мог изменить свою электронную почту на свой рабочий адрес электронной почты?
Заранее спасибо за ваше время и усилия, чтобы помочь! :)
РЕДАКТИРОВАТЬ 1:
Моя попытка воспроизвести его в общедоступном тестовом хранилище с внесенными изменениями на основе @DaveInCaz Solution, но не удалась:
Шаги:
// Updating to the wrong commit message.
hg update -r B
// Throwing all changes that has been made on the wrong commit.
hg strip B
// Re-creating the Merge again with the correct mail address.
hg merge new-feature
// Assuming now it creates revision B2
hg commit -m 'Merge'
// Pulling the changes again
hg pull
// Making the correct commits afterwards to be the children from B2 instead B.
hg rebase -s C -d B2
// Removing the old B
hg strip B
И теперь, конечно, если я попытаюсь hg push
, я получу следующее abort: push creates new remote head
.