Есть ли в 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'