Страницы

Поиск по вопросам

понедельник, 14 января 2019 г.

Как переименовать любой коммит в git?

Хочу переименовать десяток коммитов, но что-то не могу разобраться, как это сделать. Вот, к примеру, статья тут, но у меня загвоздка после git rebase --interactive, то есть редактор открывается такой же, но а дальше куда и что писать? Если пытаюсь написать что-то, то у меня почему-то пишет в самом низу и по одному символу. Делал я это на windows через терминал в SourceTree. Может, есть какой-то другой способ?


Ответ

git rebase --interactive вам покажет в текстовом редакторе своего рода план: список коммитов и действий, которые к ним будут применены. По умолчанию всем коммитам сопоставлено действие pick - сохранить как есть. Ваша первая задача отредактировать действия на свой вкус. Доступные действия описаны в комментарии, отбитом символом # # 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 reword - изменить текст сообщения. Не знаю, как SourceTree, а обычный шелл из пакета msysgit (мы ведь о Windows говорим?) предлагает в качестве редактора православный vim. Если у вас так же, и вы с ним не знакомы - смело давите кнопку i на клавиатуре и vim перейдет в режим редактирования. У нужных коммитов замените pick на reword. Теперь надо вернуться в командный режим, нажав Esc. Сохраняемся и выходим - набирайте на клавиатуре :wq, жмите Enter Редактор закроется, и git приступит к выполнению вашего плана. Для каждого коммита, помеченного действием reword, он откроет вам редактор и предложит отредактировать сообщение. Опять-таки, если у вас vim - жмем i, редактируем, Esc, сохраняем :wq. На комментарий под текстом коммита, отбитый решеткой, не обращайте внимания. Он просто подсказывает вам, что делать, и в текст сообщения не попадет.

Комментариев нет:

Отправить комментарий