# Travis CLI Deployment tool for Travis CI Currently supports the following commands: $ travis deploy [remote] # deploy to remote $ travis config [remote] # sync the local config file from travis-keychain and push the config to remote The tool relies on git remotes being defined in `.git/config`. So, in order to deploy to production there needs to be a `production` remote repository defined in the git config. ## Deployment Deploying to `staging` will just push to staging and run the migrations if `-m` was given. One can also pass `-c` in order to configure the app. Deploying to production. $ git push staging HEAD:master Running migrations. $ heroku run rake db:migrate -r staging Deploying to production will also update the production branch and tag the current commit. Updating production branch. $ git checkout production $ git reset --hard master $ git push origin production -f Tagging deploy 2011-12-11 16:04. $ git tag -a 'deploy.2011-12-11.16-04' -m 'deploy 2011-12-11 16:04' $ git push --tags $ git checkout master Deploying to production. $ git push production HEAD:master -f Running migrations. $ heroku run rake db:migrate -r production WARNING: The production branch is updated using `git reset --hard [branch]` and pushed using `git push origin production -f`. That means that all commits in the `production` branch that are not present in the target branch (e.g. `master`) will be removed from the history of `production`. **So never commit to the production branch directly!**