Согласно руководству, post-checkout
за рычагом бегут a git checkout
(столь же ожидаемый), но также и после a git clone
(если Вы не передаете --no-checkout
).
Очень хорошо, теперь, рассмотрение следующего:
git clone
--template
копируются неисполняемый файл и поэтому не выполняются после git clone
Это кажется невозможным это a post-checkout
рычаг когда-либо выполняется после a git clone
. Однако, githooks
страница справочника по http://git-scm.com/docs/githooks explicitely указывает способ избежать его выполняемый, и также параметры передали в случае, если это выполняется, который указал бы, что возможно выполнить пользовательский рычаг после a git-clone
.
Так, как это возможно? Я, очевидно, пропускаю что-то здесь.
Складывается
Я полагаю, вы можете сделать пользовательскую установку - переименуйте крючки в ... / Cделите / GIT-CORE / Шаблоны / крючки
Для удаления скважин .sample
Суффикс.
Вы также можете сделать каталог шаблона, полный симличий в каталог крючков внутри хранилища, (например. Post-Checkout -> ../../Hooks/post-Checkout
). Тогда, если клонированное репо, содержало этот конкретный крюк, он будет выполнен.
Вы правы, хотя в большинстве случаев это не произойдет.
Редактировать: я только что тестировал его, и параметр - шаблон
- это параметр - сохранение разрешений, так что это гораздо более прямой способ сделать это. Что вы видите, чтобы указать, что он разделил этот бит?
Финал говорит о версиях: вы смотрите на документацию онлайн для более новой версии Git, чем вы используете. Эта функция была добавлена в DFA7A6C (клон: запустить пост-оформление крюка при проверке); Гит описан говорит, что это не включено до V1.6.2-RC2.
В документации документации :
, когда GIT-init запускается, горстка примерных крючков копируется в крючки
каталог новых Репозиторий, но по умолчанию все они отключены. Чтобы включить крючок, переименуйте его, удалив его
.sample
суффикс.
Эта инициализация происходит как часть создания клона-обратите внимание на вызов на init_db
в встроенным клоном .C
.
Например:
$ cat /tmp/my-git-template/hooks/post-checkout #! /bin/bash echo "Hello from $0" $ git clone --template=/tmp/my-git-template file:///tmp/repo.git my-clone Initialized empty Git repository in /tmp/my-clone/.git/ remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done. Hello from .git/hooks/post-checkout