Вопрос по github, git – Редактирование сообщения git commit в GitHub

137

Есть ли способ онлайн редактирования сообщения о коммите вGitHub.comпосле подачи?

Из командной строки можно сделать

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

как правильно предложено вДругой вопрос.

Попыткаgit pull а потомgit push сработал (без вмешательства других коммитов в это время).

Но можно ли это сделать черезGitHub Веб-сайт?

Пожалуйста, смотрите @ DanGreen-Лейпцигеротве хотя это и не принято. RBT

Ваш Ответ

5   ответов
83

это невозможно напрямую. Хеш для каждого коммита Git также рассчитывается на основе сообщения коммита. Когда вы изменяете сообщение о коммите, вы меняете хеш коммита. Если вы хотите нажать этот коммит, вы должны форсировать его (git push -f). Но если кто-то уже вытянул ваш старый коммит и начал работу на основе этого коммита, ему пришлось бы переназначить свою работу на ваш новый коммит.

Я также мог сделать git pull, а затем git push, и это сработало. Но, видимо, нет онлайн-пути. PNS
По состоянию на 5 апреля 2016 года это невозмож bigT
И я думаю, что это не будет высокоприоритетным, так как вы изменили бы историю коммитов уже опубликованной ветки, что вам никогда не следует делать (за исключением случаев, когда вы уверены на 200%, что никто не имеет этой ветки на своей локальной машине) . dunni
Это только наполовину правда. Это правда, но только с предположениями. Ответ был бы лучше, если бы он сочетался с ответом @DanGreen (ниже). Это не «прямо возможно», и, конечно, оно сопровождается предупреждениями (то есть: «вы не должны« никогда »делать это ... [кроме случаев, когда вы уверены, что хотите это делать») », - но просто сказать, что это не так возможно, когда это технически возможно, это неполный ответ. Bane
ОП спросил, можно ли сделать это онлайн на сайте Github. AFAIK это все еще не возможно. Так что мой ответ действителен, и ответ Дэна Грина описывает только то, как это сделать локально, а не на сайте Githubs. dunni
101
Инструкция GitHub для этого: В командной строке перейдите в репозиторий, содержащий коммит, который вы хотите изменить.Типgit commit --amend и нажмите Enter. В текстовом редакторе отредактируйте сообщение о коммите и сохраните его.Использоватьgit push --force example-branch команда для принудительного нажатия на старый коммит.

https: //help.github.com/articles/changing-a-commit-message

Должен быть правильный ответ. mcranston18
БЫТЬ ОСТОРОЖЕН! Разница между использованием <git commit --amend> & <Enter> и <git commit --amend -m "new commit message"> заключается в том, что в первом случае вы редактируете свое сообщение коммита в текстовом редакторе & во 2-й вы замените его «новым сообщением о коммите». Если вы нажмете толчок, это заменит коммит на вашем пульте. Это НЕ решает проблему, заключающуюся в том, что если другие члены вашей команды извлекли предыдущий коммит, у вас теперь разные истории (включая разные коммиты) на разных машинах. Если вы знаете, что никто не потянул ваш коммит, это безопасно. Читайте источник Дэн отправил TMin
git commit --amend всегда существовал. Кроме того, вы запутались между git (который является инструментом командной строки с открытым исходным кодом) и Github (который является компанией, предоставляющей онлайн-хостинг). vinyll
ОП спросил о GitHub, и особенно о том, как коммит был перенесен на их серверы. Это инструкции GitHub по выполнению заданий ОП. Dan Green-Leipciger
@ DanGreen-Leipciger - да, но это не делается на самом веб-сайте, это делается с помощью командной строки. Я считаю, что PNS хотел сделать это из веб-интерфейса. PhistucK
30

git push -f при условии, что никто не тянул другой коммит раньше. Осторожно, ты меняешь историю.

Git pull, а затем git push тоже сработали. Благодарность PNS
уверен, но если ты--amend ты уже изменил историю. three
Это правда. : -) PNS
Ой, НЕ РАБОТАЛ (!) для меня, последний коммит остался там ... Peter Krauss
3

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

0

Смотрите в своем github конкретную ветку, и вы узнаете идентификатор коммита самого первого коммита в этой ветке. сделайте ребаз к этому:

git rebase -i

editor откроется. Отслеживайте свои коммиты из github UI и открытого редактора и меняйте сообщения.

Похожие вопросы