# Push with Git

Already have your code in git, or just prefer working that way? Push to a repo we host. Set it up once, and every deploy after that is just a push.

## How it works

1. **Create or pick a repo.** Open **New Service**, then **Deploy from Git**. Make a new repo, or pick one you've already got.
2. **Set up access once.** Add an SSH key, or create a git token. The same credential works across your repositories.
3. **Add the Tokay remote and push.** The setup page gives you the exact commands. Make your first commit and push.
4. **Tokay analyzes the push.** We detect the services your repo can run and adapt to the shape of your code, so you most likely won't need to change a thing.
5. **Configure and deploy.** Pick the service we found, check the type and entry point, and deploy it.

```sh
git remote add tokay <your-repo-url>
git add . && git commit -m "Initial commit"
git push tokay
```

## What happens after the push

A push is never a blind deploy. Tokay analyzes your repo first and finds the services it can run, with the entry point and runtime for each. If your code expects a database, we create one and deliver the connection through the environment variable your app already reads. Database migrations are rehearsed on a disposable copy before they ever touch production. Once you configure the service, the pipeline runs and your live URL is ready in about two minutes.

From then on, shipping an update is one `git push`.

- [Read the detailed git reference in the docs](/docs/deploy-from-git)
