Переименовать сообщение коммита / Отменить коммит в sourcetree и удалить из графа - PullRequest
0 голосов
/ 03 июня 2018

Я хотел бы знать, как отменить git commit или переименовать сообщение commit в sourcetree.Я зафиксировал свои изменения с неверным сообщением фиксации.Я хотел бы отменить этот коммит и удалить то же самое из графика.Я пробовал использовать вариант обратного коммита, но он показывает другой коммит на графике.

Ответы [ 3 ]

0 голосов
/ 04 июня 2018

По существу, функциональность, которую вы ищете, называется поправкой, которая позволяет вносить изменения в ваш последний коммит.Это функциональность, предлагаемая Sourcetree, но, поскольку вы уже создали обратный коммит, от которого хотите избавиться, вам все равно придется «запачкать руки» с помощью командной строки.

Чтобы избавиться от последнего обратного коммита, сделайте следующее:

git reset --hard HEAD~1

После этого вы можете вернуться к комфорту Sourcetree и сделать следующее, чтобы изменитьсообщение вашего оригинального коммита:

  1. Перейти к вашей рабочей копии
  2. В правом нижнем углу выберите из Commit options -> Amend latest commit
  3. Отредактируйте ваше сообщение о коммитеи нажмите Commit
0 голосов
/ 04 июня 2018

Очень полезная команда для «переписывания истории»: rebase

Вам нужно указать контрольную точку (последний Ok коммит в истории), она выглядит так:

git rebase -i <reference point sha/tag/branch>

это будетприведет вас к списку коммитов и позволит вам изменить их с помощью следующих вариантов

#Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#  x, exec = run command (the rest of the line) using shell

Я думаю, что «r» - это то, что вы ищете, но вы можете видеть, что он гораздо более мощный. git doc о переписывании истории .

После этого вам потребуется принудительно нажать для обновления удаленного сервера

git push -f <remote> <branch>
0 голосов
/ 03 июня 2018

Теперь я представляю, что вы пытались использовать git revert для отмены коммита, но это заканчивает вас дополнительным коммитом. Вот решение для вас.используйте git log --oneline', чтобы показать свои логи. Вы найдете коммит с неверным сообщением. Кроме того, вы найдете его хеш (например, 53fnd3w), скопируйте его, затем наберите

git reset --hard <paste-the-hash>

Это заставит вас вернуться к этому коммиту, после этого, если вы хотите просто изменить имя коммита, используйте

git commit --amend -m "New commit message"

Это заставит вас изменить имя последнегокоммит, на котором вы стоите, но если вы хотите отменить эти изменения, потому что вы хотите разделить их на два коммита или что-то в этом роде, используйте

git reset HEAD^

Это вернет васвернуться к коммиту, который предшествует текущему с изменениями, не зафиксированными. Как только вы сделаете новый коммит, он проигнорирует коммиты после HEAD^, и вы увидите только новый коммит, когда вы сделаете

git log --oneline

Надеюсь, это поможет

...