У меня был тот же запрос, и я не был удовлетворен текущим ответом, получившим наибольшее количество голосов здесь, в итоге следовал git-website-howto , который довольно хорошо описывает процесс и является IMO намного чище и быстрее.
TL; DR, git init --bare
для создания нового репо на вашем веб-сервере, где вы будете отправлять свои изменения с вашего компьютера разработчика.Когда веб-репозиторий получает ваши изменения, он запускает ловушку post-receive, которая затем копирует файлы в корневой веб-каталог.
Мне нравится этот подход, потому что ловушка post-receive выполняет работу на вашем сервере, поэтому ваш локальныймашина может толкаться намного быстрее и освободиться.Это также упрощает настройку удаленного отслеживания для определенной ветви.Таким образом, у вас может быть ветвь production
для обновления вашего веб-сервера, в то время как ваш мастер по-прежнему предназначен для разработки и ссылки на ваш git-репозиторий в другом месте.
Примечание: вам нужно будет запустить git config receive.denycurrentbranch ignore
на вашемрепозиторий веб-сервера для подавления предупреждения на локальном устройстве разработчика при нажатии.