¿Cómo implementar un website usando Git?

Quiero usar Git para implementar mi website local de Laravel en mi server. He estado leyendo tutoriales sobre cómo hacer esto, pero todos mencionan que escribí un poco de gancho web post-receive , que para mí, siendo muy nuevo en Git, no lo entiendo del todo.

¿Podría alguien explicarme por qué no es suficiente usar git push en mi public_html ? Lo intenté pero no copió ninguno de los files de mi website, así que supongo que me falta algo aquí (probablemente web-hooks). ¿Por qué git push copy todo desde mi directory local en mi server?

¡Gracias!

EDITAR:

He estado siguiendo este tutorial:

https://blog.sebduggan.com/2012/03/13/deploy-your-website-changes-using-git/

¿Por qué necesitamos un gancho web para que el server revise el repository en el que insertamos nuestros cambios en mi raíz web? ¿Por qué no podemos simplemente enviar nuestros cambios directamente a la raíz web?

Los ganchos git son solo algunos ejecutables haciendo todo lo que escribiste en un script bash. Lo que probablemente le falta es agregar un gancho para pasar a la versión que acaba de presionar. Esto simplemente es un script bash que llamará a git checkout -f para actualizar ese directory. Más información aquí

ACTUALIZAR

Si simplemente no desea utilizar ganchos, puede lograr esto de otra manera. Puedes crear un repository central como gitlab o github y luego enviar tus cambios allí. Luego, clone ese proyecto en su server y en lugar de presionar los cambios al server, debe extraer los cambios del server.