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} извлечь хвост пути хранилища.

Другие вопросы по тегам