В предыдущем посте я рассказал о псевдонимах amend и append.
Здесь я расскажу о других полезных псевдонимах.
[alias]
wip = commit --message 'wip' --no-verify
uncommit = reset --soft "HEAD~1"
unamend = reset --soft "HEAD@{1}"
Эти синтаксисы отличаются от HEAD^1, я никогда не помню их, или что они означают. Так что псевдонимы определенно полезны.
wip
коммит с простым сообщением и обход git hook, если таковые имеются.
Как использовать
Это можно использовать для фиксации
- поэтапных файлов
git add foo/bar
git wip
- файл(ы), переданные в параметре o
git wip foo/bar
- или все
git wip -a
Таким же образом вы могли использовать git commit -a
.
Когда вам нужен wip?
- когда у вас есть локальные изменения, которые вы хотите зафиксировать в текущей ветке перед переключением на другую.
- в некоторых случаях при пересборке, когда вы знаете, что у вас будут конфликты.
uncommit
Помогает снять фиксацию последних зафиксированных изменений.
Обратите внимание, что при этом ваш коммит будет сброшен, а сообщение о коммите будет потеряно.
Поэтому вы можете использовать git log --format="%B" -n 1
перед запуском git uncommit
.
Как использовать
git uncommit
не требуется никаких параметров
когда вам нужен uncommit?
- Когда вы использовали
git wip
и хотите снять фиксацию.
То есть вы зафиксировали что-то, сменили ветку, сделали что-то, затем вернулись к ветке, где использовали git wip
.
- когда вы знаете, что ваш последний коммит — дерьмо
unamend
Как использовать
git unamend
не требуется никаких параметров
когда вам понадобится unamend?
- когда вы добавили изменения в коммит, но допустили ошибку.
поэтому вы сделали что-то вроде этого
git commit filea
git amend folderb fileb
здесь вы заметили, что допустили ошибку, но вы не хотите использовать uncommit, который уничтожит сообщение о фиксации и первый коммит, вы хотите только восстановить состояние до использования git amend.
Поэтому вы можете просто набрать следующее.
git unamend
И вы вернётесь в состояние, в котором были до внесения поправок.
Затем вы можете использовать git reset fileb
или git reset -p
, чтобы удалить некоторые файлы или изменения из индекса.
Примечание: git unamend
отлично работает для отмены изменений git append
, так как единственная разница с git amend
заключается в том, что вы могли обновить сообщение о фиксации или нет.