How do I automate the process of pulling the latest code and restarting a service on git push?
There's no &quot;easiest&quot; way per se, there's the better way for you.
I'd recommend using a configuration management tool like Chef or Puppet (for a pull model) for which there's already resources to configure and handle logstash restarts.
That said logstash is able to watch its config file and reload it itself, quoting elastic.co documentation:

Starting with Logstash 2.3, you can set Logstash to detect and reload configuration changes automatically.
To enable automatic config reloading, start Logstash with the --config.reload.automatic (or -r) command-line option specified. For example:
bin/logstash –f apache.config --config.reload.automatic


So you may just set a crontab to git pull your repository periodically and have logstash reload itself.