Как отправить изменения .git / files в удаленное (серверное) хранилище - PullRequest
0 голосов
/ 29 мая 2018

Я хотел бы добавить .git/hooks/pre-receive ловушку к основной / удаленной ветви, но .git / не будет управляться исходным кодом.Как я могу скопировать .git/hooks/pre-receive в главную ветку (репозиторий сервера настроен на Linux)?

Есть ли какие-либо параметры конфигурации, которые автоматически игнорируются .git?Могу ли я это изменить?

.git/hooks/pre-receive должен существовать в главном репозитории только потому, что он запускается сервером при выполнении git push.

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Как я могу скопировать .git / hooks / pre-receive в главную ветку (репозиторий сервера настроен на linux)?

Войдите на сервер linux.Скопируйте файл в соответствующий каталог.Если вам нужна передача файла, используйте любой механизм, который вы настроили для этой цели (ftp, ssh, файловые серверы и т. Д.).

Есть ли какие-либо параметры конфигурации, которые автоматически игнорируются .git?Могу ли я это изменить?

Нет.По замыслу ни одна часть папки .git не является общей для push / pull.То, что крючки включены в это наиболее определенно преднамеренно.Это не конфигурация;это дизайн git.

Возможно, вы можете перепутать git, играя каким-то образом с переменной окружения "git directory", но если когда-нибудь будет показано, что это каким-то образом записывается в каталог метаданных сервера, этобудет считаться эксплойтом, а не изменением конфигурации, и скоро будет исправлен git, чтобы предотвратить это.(Вероятно, это уже невозможно сделать, но кто знает, что можно найти, любуясь на краях системы ...?)

.git / hooks / pre-receive должен существовать в masterрепозиторий только потому, что он запускается сервером, когда выполняется git push

Что является такой же веской причиной, как любая, что вы не можете push отправить его на сервер;это подразумевает, что он существует и на клиентах.

Кстати, исходный репозиторий условно называется origin, а не master.master относится к имени по умолчанию для ветви по умолчанию и существует во всех репозиториях.Хотя все это настраивается, использование терминов обычным способом целесообразно для обеспечения четкого понимания связи.

0 голосов
/ 29 мая 2018

Из-за проблем с безопасностью в истории git хуки не обрабатываются (представьте, что вы клонируете случайный проект в Интернете, который содержит вредоносный код в хуке после проверки ...).Он настроен специально, и я боюсь, что он может не переопределить.

Если вам требуется, чтобы на вашем сервере была активна перехват предварительного приема, вам нужно будет активно настроить его (либо подключение к серверу, либоиспользуя интерфейсы, предоставляемые вашим сервером, если есть)

...