2

Я хочу изменить слово в коммите HEAD ^ 2, как это сделать?

РЕДАКТИРОВАТЬ Эти коммиты еще не были переданы. Так что это не показывается как pick xxxxxx в интерактивном редакторе.

2 ответа2

3
git rebase -i <name your branch's parent, probably "master">

Vim откроется, и вы увидите нечто подобное;

pick ba95551 Commit_message_1
pick 3e357b5 Commit_message_for_commit_I_want_to_edit
pick 5eee414 Commit_message_3
pick c9a1f38 Commit_message_4
  1. Поместите курсор (с помощью клавиш мыши / стрелок / или команд "h" "j" "k" "l) на начало строки для коммита, который вы хотите отредактировать.
  2. Нажмите "Вставить", чтобы войти в режим редактирования.
  3. Введите "е" для "редактирования"
  4. Удалите слово "pick" ("esc", "d", "w" для "delete word" или просто нажмите "delete" несколько раз).

Вы должны увидеть что-то вроде этого;

pick ba95551 Commit_message_1
e 3e357b5 Commit_message_for_commit_I_want_to_edit
pick 5eee414 Commit_message_3
pick c9a1f38 Commit_message_4

Нажмите "Esc" для входа в командный режим. Введите ": WQ", чтобы написать, выйти. Нажмите Enter.

Git теперь будет повторно применять ваши коммиты до этого момента. Тогда вы можете "редактировать предыдущий коммит", как обычно:

git commit --amend

или же

git gui

Интерактивная перебазировка также позволяет вам переупорядочивать и удалять коммиты по вашему выбору. Вы должны знать, что переписывание истории, как это повлияет на тех, кто ушел от вас. См. Восстановление из восходящей версии.

0

Если вы буквально хотите отредактировать HEAD^<n> , то способ сделать это - запустить:

git rebase -i HEAD^<n+1>`

Первый коммит в списке должен быть HEAD^n ; изменить его команду от pick для edit .

Когда он вернет вас к приглашению, внесите изменения, зафиксируйте их и запустите git rebase --continue .

Примечание. Если вы хотите изменить только содержимое этого конкретного коммита, вам также может понадобиться / нужно edit следующий коммит (HEAD^<n-1>), чтобы отменить все сделанные вами изменения. Возможно, самый простой способ сделать это - сначала пометить этот коммит, а затем исправить исправленную версию, выполнив git checkout <tag_name> . из корня хранилища.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .