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://git@your-isurus-instance:2222/org/repo
The
git@in the SSH URL is the SSH login name for Git repositories. Isurus authenticates by SSH key, not by that name. 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://git@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 → Security → API 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://git@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.