Как использовать псевдоним git checkout && git stash
Итак, у меня есть две ветки master и formtest
У меня есть [псевдоним] "git switch", который позволяет мне спрятать любые работы и проверять другую ветку.
"Git Switch"
switch = !git stash && git checkout
Теперь я хочу создать [псевдоним]
"мерзавец"
switchback = ???
когда я запускаю это, я хочу сказать
переключиться на эту ветку "formtest"
а затем запустить тайник применить
распаковать последний WIP и вернуть вещи обратно перед первым запуском "git switch"
3 ответа
git checkout $(git log --format=%B -n 1 stash@{0} | grep -oP '(?<=^WIP on )[^(:][^:]*' || git rev-parse stash@{0}^)
При этом будет проанализировано последнее сообщение о сохранении, содержащее имя ветви, в которой оно было создано. Если не было ответвления (отсоединенного HEAD), он будет проверять родительский коммит тайника.
Чтобы вернуться в ветку, над которой вы работали раньше
git checkout - && git stash apply
-
будет работать аналогично -
в cd -
например, переключиться обратно на последнюю ветвь (местоположение), которую вы использовали.
Но будьте осторожны, что это будет checkout
неправильная ветвь, если вам случится checkout
другая ветвь между ними.
Вы можете определить функцию оболочки и немедленно вызвать ее:
git config --global alias.switchback 'f() { git checkout "$1" && git stash apply; }; f'
Затем позвоните:
git switchback master # switch to master and apply stash
git switchback - # switch to previous branch and apply stash
Вы можете сделать псевдоним по умолчанию-
(предыдущая ветка) довольно легко:
git config --global alias.switchback 'f() { git checkout "${1:--}" && git stash apply; }; f'
затемgit switchback
перейдет на предыдущую ветку и применит заначку, но все равно можно запуститьgit switchback branchname
перейти на другую ветку.