Извлечение фрагментов из последнего коммита git без повторной фиксации оригинального коммита - PullRequest
0 голосов
/ 22 февраля 2019

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

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

$ `git reset @^`
$ `git add -p`    # Stage all but the small chunks I want to extract
$ `git commit`    # Commit original (without the small chunks)
$ `git commit -a` # Commit the remaining chunks as a new commit

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

Другими словами, я в идеале ищу одну команду git, которая позволяет мне сразу: - интерактивно выбирать чанки из последнего коммита - удалять эти чанки из коммита (сохраняя исходное сообщение о коммите) - помещать эти чанки в индекс, чтобы они были готовы для меня

Существует ли такая команда

1 Ответ

0 голосов
/ 22 февраля 2019

Нет.Самый короткий путь, который я могу удалить, удаляет одну команду из вашего списка:

git reset @^
git commit -p
git commit -a

Тем не менее, из ваших замечаний в комментариях я думаю, что еще одна вещь, которую вы могли бы найти полезной, это git reset -p @^ - клочья, которые она показывает, являются обратнымииногда это может немного сбивать с толку, но это позволяет вам выборочно удалять изменения из вашего последнего коммита, включая рабочий процесс такого типа:

git reset -p @^
# potentially more wrangling
git commit --amend
git commit -a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...