Git Cheat Sheet
A quick reference for working with Git repositories on Isurus. Create a repository with the VCS type set to Git, then use the standard git client. (A Jujutsu/jj repo is a Git repo server-side, so jj git interop works against these same URLs.)
Getting Started
Clone a Repository
Copy the exact URL from the repository's Clone widget. The general shapes:
# Clone over HTTP — prompts for username and password (or API token)
git clone https://your-isurus-instance/org/repo
# Clone over SSH — requires an SSH key on your account
git clone ssh://hg@your-isurus-instance:2222/org/repo
The
hg@in the SSH URL is only the SSH login name. Isurus authenticates by SSH key, not by that name, so the username portion is not significant — copy the exact host, port, and path from the repository page.
Configure Your Identity
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
Add an Isurus Remote to an Existing Repository
git remote add origin ssh://hg@your-isurus-instance:2222/org/repo
git push -u origin HEAD
Daily Workflow
Check Status
git status
Stage and Commit
# Stage specific files
git add file1.go file2.go
# Stage everything
git add -A
# Commit with a message
git commit -m "Add new feature"
Push and Pull
# Push the current branch
git push
# Push and set upstream on first push
git push -u origin HEAD
# Fetch and merge
git pull
# Fetch without merging
git fetch
Branches
# List branches
git branch
# Create and switch to a new branch
git checkout -b my-feature # or: git switch -c my-feature
# Switch branches
git checkout my-feature # or: git switch my-feature
# Push a branch and set upstream
git push -u origin my-feature
# Delete a local branch
git branch -d my-feature
Tags
# Create an annotated tag
git tag -a v1.0.0 -m "Release 1.0.0"
# Push a tag (triggers a tag/release pipeline in CI)
git push origin v1.0.0
# Push all tags
git push --tags
History
# Recent commits
git log
# One line per commit
git log --oneline
# Graph view
git log --oneline --graph --all
# Show a specific commit
git show <commit>
# Blame a file
git blame path/to/file.go
Pull Request Workflow
Isurus pull requests for Git repositories are branch based: you push a feature branch, then open a PR to merge it into the repository's default branch (e.g. main).
# 1. Start from the default branch and pull the latest
git checkout main
git pull
# 2. Create and switch to a feature branch
git checkout -b add-search-api
# 3. Make changes and commit
git add -A
git commit -m "Add search endpoint to API"
# 4. Push the branch to Isurus
git push -u origin add-search-api
# 5. Open a Pull Request on the Isurus web UI:
# Repository > Pull Requests > New Pull Request
# (source = add-search-api, target = main)
To address review feedback, push more commits to the same branch — the PR updates automatically:
git commit -am "Address review: improve error handling"
git push
See Pull Requests for the review, merge, and issue-linking flow (identical across all VCS types).
Authentication
HTTP
Clone and push over HTTP authenticate with your username plus a password or API token. Using a token is recommended — and it is the only option for SSO (SAML/OIDC) users, who have no account password:
# Authenticate with an API token (put it where the password goes)
git clone https://<user>:<isurus_token>@your-isurus-instance/org/repo
# Or store credentials to avoid repeated prompts
git config --global credential.helper store
Create a token under Settings → Tokens (personal) or a repository's Settings → Integration → Tokens (repo-scoped). Scope it repo:read to clone/pull and repo:write to push.
SSH
- Generate an ED25519 SSH key:
ssh-keygen -t ed25519 -C "your@email.com" - Add the public key (
~/.ssh/id_ed25519.pub) to your Isurus account under Settings > SSH Keys. - Clone using the SSH URL shown on the repository page.
CI/CD
A git push triggers CI exactly like any other backend. Commit a .isurus-ci.yml to the repository root; pushes, tags, and pull-request updates fire pipelines. See the CI/CD Guide.
Using Jujutsu (jj)
A Jujutsu repository is a Git repository on the server side, so you can use the jj client against any Isurus Git repository — there is no separate "jj" repo type and no server-side setup.
Clone an Isurus Git repo into a jj workspace using the same URLs shown on the repository page:
jj git clone https://your-isurus-instance/org/repo
# or over SSH
jj git clone ssh://hg@your-isurus-instance:2222/org/repo
Work with your normal jj flow, then send your changes back to Isurus:
jj git push
Because jj stores standard Git commits and speaks Git's wire protocol, Isurus sees ordinary Git history — pushes trigger CI and you open pull requests just like any other Git repository. jj's own metadata stays local to your workspace.