Git псевдоним для CD в недавно клонированном репо
У меня есть несколько полезных псевдонимов git, которые я использую, в основном отсюда:
https://haacked.com/archive/2014/07/28/github-flow-aliases/
Однако я упускаю одну вещь: всякий раз, когда я клонирую репозиторий, я 100% времени захочу зайти в эту папку сразу после этого.
Есть ли способ сделать этот псевдоним?
Я предполагаю, что это будет связано с получением первого ряда, возвращенного в STDOUT, и анализом его с помощью регулярного выражения. Cloning into '(.+?)'...
, затем перейдите в эту папку.
1 ответ
Как ад function
вероятно, будет более подходящим, чем alias
в современной оболочке (если вы не используете tcsh
). Для ZSH это может выглядеть примерно так:
function clonecd {
local dir
if [[ $# -eq 2 ]]; then
git clone -- $1 $2 || return
dir=$2
else
git clone -- $1 || return
dir=${1:t}
fi
builtin cd $dir
}
что позволяет как clonecd git://.../somerepo
а также clonecd git://.../somerepo someotherdir
формы, а также некоторые различные проверки ошибок.
Оболочка POSIX, такая как bash
вместо этого потребуется цитирование переменных (git clone -- "$1"
и так далее, чтобы избежать глупости), и, вероятно, некоторые другие средства, чем ${1:t}
извлечь хвост пути хранилища.