Appearance
Cloning a repository
On the Home tab, tap + and choose Clone repository. The clone screen starts with the URL; once the URL is valid it shows the rest of the form.
A clone is never shallow: every commit of what it fetches comes down, and so does every branch unless you ask for Clone this branch only. That is what lets the history views and every diagnostic in the app work without asking the server again.
The URL
Paste or type the URL your host's clone button gives you. Three forms are accepted:
| Form | Example | Transport |
|---|---|---|
| HTTPS | https://github.com/owner/repo.git | HTTPS (http:// is accepted too) |
| SCP | git@github.com:owner/repo.git | SSH |
| SSH URI | ssh://git@host:2222/owner/repo.git | SSH |
The SCP form has a : between host and path and always means port 22. Use the ssh:// form when the server listens on another port. Mixing the two, as in ssh://git@host:owner/repo, is refused, because the colon in a URI marks a port.
Until the URL is valid, chips for GitHub, GitLab and Bitbucket fill in the host prefix. Once it is valid, a Switch scheme row swaps the same repository between its HTTPS, SSH and SCP spellings, which is the quick fix when the URL and your credential disagree on transport.
The clock button lists Recent repositories you have cloned before, each with a remove button. Browse repositories lists the repositories a token or OAuth credential can see and fills the URL from your pick; its filter and the form's Branch / Tag picker match as every list does (see Searching lists). Tap Done to continue.
The rest of the form
- Project name is optional and defaults to the repository's name. Two projects may share a name; the form only points it out.
- Branch / Tag picks what is checked out after the clone. The picker asks the server for its refs. The default is the remote's default branch.
- Clone this branch only fetches a single branch and only the tags that point into it. Everything else appears in the branch pickers under Branches not fetched yet and Tags not fetched yet, and comes down when you ask. It is off by default, and unavailable when a tag is chosen.
- Make it read-only opens the project without editing, staging or committing. Change it later in the project's settings.
- Require authentication reveals the credential picker. Leave it off for a public repository over HTTPS. SSH always needs it.
Authentication
With Require authentication on, pick a credential. For an HTTPS URL that is an access token or an OAuth sign-in; when exactly one stored credential matches the host it is picked for you. For an SSH URL it is a Git over SSH identity from the server whose host and port match; see SSH keys.
Test checks the credential against the URL before the clone starts. It proves the host accepts the credential, not that the repository exists. A failed test does not block Clone.
If the SSH server's host key is not trusted yet, the clone stops to ask Trust this server? with the host's fingerprint. Compare it with what the host publishes before tapping Trust.
Progress
Tap Clone. The progress screen walks through connecting, the remote preparing objects, downloading, checking out files, finalising the repository, then registering the project and building its search index, with counts and transfer rate as it goes. Show details reveals the log.
A clone cannot be cancelled once it has started. If it fails, the screen says why and stays put; go back and the form still holds what you typed. The partial clone is discarded.
When it finishes, the project is on the Home tab. Open it to start editing.
On the free plan
The free plan allows one git project, read-only. Cloning a second one is refused with Upgrade to Pro; deleting the current project makes room for another. See Getting started.
