📚 Help Git Cheat Sheet

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

  1. Generate an ED25519 SSH key:
    ssh-keygen -t ed25519 -C "your@email.com"
    
  2. Add the public key (~/.ssh/id_ed25519.pub) to your Isurus account under Settings > SSH Keys.
  3. 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.

×