A SMALLER, FASTER, WAY TO WORK WITH BIG REPOS

Only check out
what you need.

Check out just what you need, save space and time, with normal commits and pushes.

you@machine:~$ got checkout https://github.com/acme/mono.git apps/api

Get started

01 / QUICK START

Start with one command

Install got

brew install cloudless-ai/tap/got

Check out a repository

Check out a repository, either the whole tree or an optional folder.

got checkout https://github.com/acme/mono.git apps/api
got checkout https://github.com/acme/mono.git

Choose a branch or revision

Use --branch, --revision, or --directory to choose a different base or destination.

got checkout acme/mono
got checkout acme/mono apps/api --branch main --revision <commit>

Use standard Git commands with got to commit and push

got commit -m "Update API"
got push

02 / CLI REFERENCE

Git stays Git

got status, got add, and got commit call through to Git. got push passes explicit arguments through; a bare push publishes the current work branch and sets its upstream on first push.

Run got --version to check the installed version, got --help for the overview, got checkout --help for checkout options, or got help push for push behavior.

got checkout <remote> [<path>] \
  [--branch <branch>] \
  [--revision <commit>] \
  [--directory <destination>]

got status [git options]
got add <pathspec>...
got commit [git options]
got push [git arguments...]

03 / GITHUB ACTIONS

Fast by default in CI

Speed up your actions with a fast checkout of the entire repo, or only the folders you need.

permissions:
  contents: read

steps:
  - uses: cloudless-ai/got@v0.3.0
    with:
      path: apps/api
      # Omit path to check out the entire repository
      # additional-paths: |
      #   .github
      #   shared/build

04 / BENCHMARKING

Git vs. got

We benchmarked Git vs. got for LLVM.

Checkout time (lower is better)
Git / full tree 13m 04s
got / full tree 1m 01s
got / clang 29s
Disk usage (lower is better)
Git / full tree 6.1G
got / full tree 2.4G
got / clang 479M

05 / FAQ

Frequently asked questions

How does this work?

got wraps the sparse checkout feature of git to keep size down and speed up

So it's just a wrapper around existing git functionality?

Yes