CI это конечно круто, вы наверно к этому должны стремиться. Но для маленьких проектов я использую вот этот замечательный инструмент mina ->
https://github.com/mina-deploy/mina
1. Вы описываете конфигурационный файл в руби (там впринцепи, легкий такой для понимания DSL)
2. он потом генерить bash script, куча полезных фич просто из коробки -- откатывать релиз можно, запускать процессы, выключать, перезагружать и так далее.
3. загружаешь скрипт на сервер и запускаешь - он там сам развертывает релиз
дальше уже дело техники, как вы этот релиз доставлять будете - можно с помощью git'a, как вы уже сказали. а можно tarball какой-нибудь на сервак лить, и оттуда раздавать... Все зависит от вашего кейса, величины проекта и какой инструментарий вы используете :)