Everyday git
Once a remote repository exists and you have a role, daily work is normal git.
Once a remote repository exists and you have a role, daily work is normal git. This page maps common tasks onto Rabun Git.
Assume origin is:
ssh://git@git.example.com:2222/ada/website.gitClone (get a working copy)
git clone ssh://git@git.example.com:2222/ada/website.git
cd website
You need at least read. The clone includes all branches the server has. Merge-request refs (refs/rabun/requests/…) are in the same repo if you fetch them; you do not need them for ordinary editing.
See remotes and status
git remote -v
git status
git log --oneline -5
origin should point at the forge URL. git status tells you if you have uncommitted files.
Commit locally
Git still stores commits on this machine until you push.
# edit files
git add README.md
git commit -m "Explain the setup"
Write a short message in the present tense (“Explain”, not “Explained”). Nothing is on the server yet.
Update from the server
git pull
If others merged to master/main, this fetches and merges (or rebases, if you configured that). Need read.
Branch, then push
Do not commit straight to master/main unless you are a repo or forge admin. Create a branch:
git checkout master
git pull
git checkout -b feature/contact-form
# edit, commit
git push -u origin feature/contact-form
Need write to push that branch. -u means later git push on this branch goes to origin.
List branches on the server:
git branch -rWhy git push origin master might fail
master and main are protected. Non-admins get a hook error from the forge. That is expected. Push a feature branch and open a merge request.
Admins can push those branches directly (for example the first import of an existing repo).
Fetch without merging
git fetch origin
git log HEAD..origin/master
Useful to see incoming commits before you git pull.
Tags
git tag v0.1.0
git push origin v0.1.0
Need write. Tag pushes can start CI workflows if a workflow file has on: tag:.
SSH management without git
Same port as git. Examples:
ssh -p 2222 git@git.example.com repo list
ssh -p 2222 git@git.example.com repo show ada/website
ssh -p 2222 git@git.example.com request list ada/website
ssh -p 2222 git@git.example.com run list ada/website
A login SSH session (no command) prints a greeting and the repos you can read.
If git asks about the host key
First connection to port 2222 shows a fingerprint for the forge host key ($RABUN_GIT_ROOT/ssh_host_ed25519_key). Compare with what the operator expects, then type yes. This is the same check as the first ssh git@github.com.
Next: Merge requests.