Есть ли в git команда ярлыков для исправления HEAD в HEAD~1

Я иногда делаю это:

git rebase -i HEAD~2

Это показывает мне два коммита, HEAD~1 а также HEAD, я меняю pick в f исправить HEAD в HEAD~1, Теперь я объединил два моих последних коммита в один коммит, в котором есть только сообщение коммита от старого коммита.

Есть ли команда / ярлык / опция, чтобы сделать это быстро?

Что если я захочу зафиксировать три последних коммита в четвертом последнем коммите?

Единственное решение, которое мне удалось найти, - написать скрипт, который сделает это за вас. Но я ищу что-то, что уже встроено в git.

1 ответ

Одним из решений будет использование git reset HEAD~1, Это удалит последний коммит и поместит его изменения в вашу область подготовки. Затем вы можете внести изменения в предыдущий коммит, используя git commit --amend -a --no-edit, --no-edit флаг заставляет его использовать то же самое сообщение коммита.

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

Он заканчивается этим однострочником, который вы можете поместить в псевдоним для удобного использования:

git reset HEAD~1 && git commit --amend -a --no-edit

В качестве псевдонима git:

git config --global alias.squashLast2 '!git reset HEAD~1 && git commit --amend -a --no-edit'
Другие вопросы по тегам