2015-07-29 5 views
0

Прежде чем кто утверждает, что я не искал достаточно для ответа на эту тему, позвольте мне уточнить:Зафиксировать связанные с Git крючков не вызывая

Я нашел много нитей об этой проблеме, которые были решены, однако; ни один из этих ответов не работал для меня.

Я уже убедился, что пользователь, выполняющий коммит, имеет соответствующие разрешения.

Я обеспечил файл крюк сам по себе является исполняемым и не заканчивается в .Sample

Я не работаю в голой репо, так совершать связанные с крючками следует ссылаться.

Я попытался совершить сделку в Git Bash, инструменте Git Commit и даже стороннем графическом интерфейсе GitEye с одинаковыми результатами.

Post-commit и Pre-commit оба не работают, пытаюсь ли я их вызывать из репо на моем сервере, а также из клона на моем локальном компьютере.

Файлы самого крючка успешно выполняются и работают по назначению, если я запускаю их как файлы bash/batch.

Другие крючки, такие как обновление, работают нормально, но ничего, что вызывает от git commit.

На данный момент я исчерпал все возможные проблемы, о которых я могу думать. Любая помощь приветствуется, но, пожалуйста, прочитайте то, что я уже сделал, прежде чем небрежно направлять меня в поток, который предлагает одну из вышеупомянутых вещей. Я надеюсь, что есть какое-то непонятное решение, которое может объяснить мне какой-то Git-savvy пользователь.

+0

Это крюк на стороне клиента или на стороне сервера? – zaratustra

+1

Можете ли вы добавить ссылки на решения, которые вы уже пробовали, поэтому мы знаем, какие из них будут повторяться? Также, каков ваш реальный вопрос? Похоже, что это будет нечто вроде «Как я могу заставить этот крючок Git вызывать?», Но вы прямо не задали вопрос. –

+1

Я считаю, что pre и post commit являются крюками на стороне клиента. –

ответ

0

Это работает как шарм. В репозитории мерзавца есть образцы крюка вы можете использовать их как это:

Например:

1) простой крюк (предварительно совершить), что forbide совершает с и выводит сообщение.

$ git init 
$ cp ./.git/hooks/pre-commit.sample ./.git/hooks/pre-commit 
$ cat ./.git/hooks/pre-commit 

#!/bin/sh 
cat <<\EOF 
    This is pre-commit hook 
EOF 
    exit 1 

$ touch README 
$ git add README 
$ git commit 
    This is pre-commit hook 
$ git log 
fatal: bad default revision 'HEAD' 

2) простой крюк (после фиксации), который печатает сообщение после того, как совершает

$ rm -f ./.git/hooks/pre-commit 
$ cat ./.git/hooks/post-commit 
#!/bin/sh 
cat <<\EOF 
    Good job! 
EOF 

$ git commit 
    Good job! 
[master (root-commit) b552b7f] README 
1 file changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 README 

$ git log --oneline 
b552b7f README 

Как вы можете видеть крючки всего лишь Баш скрипты, так что вы можете настроить его.

+0

Вы прочитали мой вопрос? Я знаю, как сделать git-крючок, и как он ДОЛЖЕН работать, проблема в том, что он не вызывает. Я могу называть свои крючки вручную в качестве сценария bash через SSH, но они не вызывают, когда им нужно при git commit. –

+0

Как вы можете видеть мои работы с крючками, может возникнуть проблема с правами или что-то еще, можете ли вы показать нам крючки, чтобы мы могли попробовать их сами? – zaratustra

+0

Это не вопрос разрешений, я уверен. Я сказал, что в вопросе. Я просто пытаюсь скрутить URL-адрес API для Jenkins в post-commit. Таким образом, вы могли бы имитировать это с помощью '#!/Bin/bash curl http: // google.com' –

Смежные вопросы