Pre-clone / pre-init git hooks? - PullRequest
       1

Pre-clone / pre-init git hooks?

0 голосов
/ 04 июня 2018

Я пытаюсь выяснить, как лучше написать хук "pre-init" или "pre-clone".Я бы использовал его для студентов, которые только изучают git - какой-то сценарий, который проверяет родительские каталоги до того, как фактически выполнить инициацию или клонирование репо.

Я знаю, что есть рядхуков pre [action], доступных в git, но на уровне хранилища, а не на глобальном уровне.Есть ли способ создать такой хук или мне лучше написать какой-нибудь псевдоним?Я прочитал документацию, и, кажется, намекнул, что этот тип вещей возможен, но не уточнил, как это сделать.

ОБНОВЛЕНИЕ: В итоге я создал пару псевдонимов.Вот они.Если у кого-то есть предложения о том, как сделать их лучше, мне определенно будет интересно - скрипты bash не моя область знаний.

is_git_repo() {
    $(git rev-parse --is-inside-work-tree &> /dev/null)
}

is_git_dir() {
    $(git rev-parse --is-inside-git-dir 2> /dev/null)
}

check_for_git_repo() {
  if is_git_repo || is_git_dir; then
    echo "You are currently in a git repository. Please leave this repository and try again."
    return 1
  fi
}

check_for_git_parent() {
  if tree -a -d | grep -q '.git'; then
    echo "This directory is not a git repository, but one of its subdirectories is. Please create a new subdirectory and try again."
    return 1
  fi
}

alias ginit='check_for_git_repo && check_for_git_parent && echo "Creating repository" && git init'

gclone() {
  check_for_git_repo && git clone $*
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...