клон мерзавца и рычаг постконтроля

Согласно руководству, post-checkout за рычагом бегут a git checkout (столь же ожидаемый), но также и после a git clone (если Вы не передаете --no-checkout).

Очень хорошо, теперь, рассмотрение следующего:

  • у Вас нет локального репозитория прежде a git clone
  • рычаги не синхронизируются между пультами ДУ
  • рычаги, сохраненные в пользовательском шаблонном каталоге, используемом с --template копируются неисполняемый файл и поэтому не выполняются после git clone (который на самом деле не верен, как указано Jefromi в его ответе, но рычаг все еще не выполняется),

Это кажется невозможным это a post-checkout рычаг когда-либо выполняется после a git clone. Однако, githooks страница справочника по http://git-scm.com/docs/githooks explicitely указывает способ избежать его выполняемый, и также параметры передали в случае, если это выполняется, который указал бы, что возможно выполнить пользовательский рычаг после a git-clone.

Так, как это возможно? Я, очевидно, пропускаю что-то здесь.

Складывается

28
задан Geoffrey Bachelet 26 January 2010 в 18:42
поделиться

2 ответа

Я полагаю, вы можете сделать пользовательскую установку - переименуйте крючки в ... / Cделите / GIT-CORE / Шаблоны / крючки Для удаления скважин .sample Суффикс.

Вы также можете сделать каталог шаблона, полный симличий в каталог крючков внутри хранилища, (например. Post-Checkout -> ../../Hooks/post-Checkout). Тогда, если клонированное репо, содержало этот конкретный крюк, он будет выполнен.

Вы правы, хотя в большинстве случаев это не произойдет.

Редактировать: я только что тестировал его, и параметр - шаблон - это параметр - сохранение разрешений, так что это гораздо более прямой способ сделать это. Что вы видите, чтобы указать, что он разделил этот бит?

Финал говорит о версиях: вы смотрите на документацию онлайн для более новой версии Git, чем вы используете. Эта функция была добавлена ​​в DFA7A6C (клон: запустить пост-оформление крюка при проверке); Гит описан говорит, что это не включено до V1.6.2-RC2.

15
ответ дан 28 November 2019 в 03:48
поделиться

В документации документации :

, когда 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
12
ответ дан 28 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: