Git: понимание пост-получения

Я новичок в мире Git после недавнего перехода из SVN, и я пытаюсь понять хук post-receive.

Надеюсь, я прав, говоря, что это хук на стороне сервера, но как мне использовать хук post-receive для запуска команды на стороне клиента, или для этого есть другой хук?


Eg.

post-receive хук работает на сервере. Отправляет команду клиенту/коммиттеру, и эта команда выполняется на их компьютере (например, получена команда echo Commit.)


И извините, если я все понял неправильно - я новичок в Git.


person Bo A    schedule 28.07.2012    source источник
comment
Глава 7.3 Pro Git – отличный ресурс для ознакомления с ловушками Git.   -  person David Cain    schedule 28.07.2012
comment
В Pro Git v2 это теперь глава 8.3. .   -  person Ed Chapel    schedule 31.01.2016


Ответы (1)


Я не эксперт по git-хукам, так как я только учусь их использовать сам, но я бы порекомендовал прочитать это для некоторого фона/контекста по хукам:

http://git-scm.com/book/en/Customizing-Git-Git-Hooks

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

после фиксации

что, как я полагаю, будет эквивалентом пост-приема на стороне клиента (т.е. после завершения всего процесса фиксации).

person Stephen Washburn    schedule 29.07.2012
comment
Я прочитал вашу ссылку, но не могу найти, почему она не выполняется. Я установил разрешения на 777. Только один парень предлагает проверить, какой транспортный протокол использует git, но я не могу найти, как это проверить. - person Dariux; 06.01.2015
comment
Похоже, вам нужно задать свой собственный вопрос. Этот вопрос касался понимания того, какой хук использовать на стороне клиента для запуска команды после успешной фиксации. - person Stephen Washburn; 07.01.2015
comment
Я понял. Под словом «сервер» подразумевался битбакет или какой-то подобный сервер. Я пытался на своем сервере. Но мой сервер был клиентом по отношению к битбакету. Так вот почему он не работал. Я думаю, что это должно быть более четко задокументировано, потому что обычно, когда разработчик думает о сервере, это Linux-сервер, на который он помещает файлы веб-сайта. Но для этого я использовал команду post-merge, поэтому, когда я запускаю git pull на своем сервере, он объединяется и выполняет хук. - person Dariux; 08.01.2015