Q:

Use capistrano to only update with git instead of deploying whole new release

I have a very small app that even uses sqlite3 in production because there are never going to be any issues with multiple writes, etc.  I want to use capistrano to quickly and painlessly deploy updates to this app.  But when I run cap production deploy it dumps the entire app into a release folder and symlinks it to current.  I know I can include the production.sqlite3 file in the deploy.rb to keep the data but it still seems overkill to clone the entire repo every time I want to push an update. 
I couldn't find anything in the capistrano documentation for updates. 
Essentially all I need cap to do is

make sure my local git HEAD is the same as master
SSH into the prod server and do a git pull
Run rake db:migrate if necessary
Run rake assets:clean assets:precompile
Restart Phusion Passenger

How would I accomplish that? 

A:

Just write your own bash or ruby script that does this.  I think you are missing the point of Capistrano.  Cloning the whole repo allows you to do deploy rollbacks, leaving the previous version as is.  It takes into account deploys that fail, and will not mess with your production site during the deploy process. 