Git - Изменить старый коммит с файлом, который сейчас находится в моем рабочем каталоге - PullRequest
0 голосов
/ 30 августа 2018

Итак, я зафиксировал файл, который был неправильным, это не мой последний коммит (это HEAD~9). И я хотел заменить этот файл версией, которая у меня сейчас есть в моем рабочем каталоге.

Я собирался сделать интерактивную перебазирование, но понял, что мне нужно сначала очистить мой рабочий каталог, в котором есть файл, с которым я хочу заменить старую версию в HEAD~9.

Есть похожие вопросы, но не нашли ответа на этот сценарий. Какой способ действовать в этом случае?

1 Ответ

0 голосов
/ 30 августа 2018

Звучит так, будто интерактивный rebase даст вам то, что вы хотите. Сначала вам нужно будет зафиксировать файл во «временном» коммите. Затем с помощью интерактивной перебазировки вы можете fixup HEAD~9.

  1. git add <file>
  2. git commit -m 'fixup commit'
  3. git rebase -i HEAD~10
  4. В редакторе переместите фикс фиксации сразу после HEAD~9 и установите его на f для fixup.
  5. Сохраните и закройте редактор

A fixup - это squash, но он сохраняет сообщение о коммите, в которое коммит попадает. Если какой-либо из коммитов между HEAD и HEAD~9 также изменяет этот файл, то при воспроизведении коммитов могут возникнуть конфликты слияния.

...