Frequently Asked Questions
Do I have to pay?
The full public course catalog is free, run out-of-pocket by a solo developer who thinks learning git should feel like using git.
Do I need to install anything?
If you have a git executable available, you are good to go.
Do I need to know git already?
The beginner course starts at your very first commit. If you are already fluent, skip ahead — the catalog is built to be entered at any level, and the server couldn't care less about the order you complete the courses in.
Do I need an account?
Not for HTTPS. Clone with the URI displayed on this website and you are good to go — no account creation and no sign-in credentials, just a throwaway repository for you mess around in.
If you are using SSH you can get a personal view of your progress by authenticating via the following command.
$ ssh ssh://login@pushups.sh:2222
Hi SHA256:i1LmzCmE9a+A+BAtDYkSj9FebTIb9KhS4HY6o2GcAG8
Open this link to sign in as your key:
https://pushups.sh/api/user/login/da0d27c2bd
The link is single-use and expires in a few minutes.
Once the server can trust that you are who you say you are, your ssh-submitted submissions will appear automatically in your personal dashboard.
Is this a simulation?
No. You work in your own terminal, with your own editor, against a remote that speaks the actual git protocol — there is no web widget here imitating a shell.
Can I use a GUI client instead of the terminal?
If it speaks the git protocol, it works — the server cannot tell the difference. This platform is terminal-first with the added bonus of being able to view progress, task instructions, and more, directly in your browser.
What if I break my repository beyond repair?
Recovering from a broken repository is a skill we teach — but until you have it the reset button is always one clone away. As with most things git — nothing is beyond repair.
How does grading work?
Each stage ships its task as INSTRUCTIONS.md — read it in your
terminal, or right here in the browser.
When you git push, the server looks at what you actually committed:
which files changed, what the history looks like, and whether you solved
the task.
What if my push is rejected?
Then you get feedback, and you try again. The server tells you what it expected right there in the push remote log; address it, commit, and push again.
Can I prove I completed a course?
Yes. Completions are verified from your actual git history and signed by
the server, which means the proof is something you get with
git log --show-signature — or perhaps by hosting your completed course
in a public setting.
Want to brag in a repository on GitHub? Simply push the completed course repository to wherever you want to glory — there obviously won't be any validation, but the (cryptographically signed) git history tells the full story.
Does this touch my GitHub?
No. Course repositories are hosted by us and exist only for the course. Nothing connects to your GitHub, GitLab, or company remotes, and nothing you do here can affect your other work.
What does the server see about me?
What git sends, nothing more: the commits you push, with whatever author name and email you have configured locally.
Should I use git over HTTPS or SSH?
We support both. HTTPS is primarily used to facilitate anonymous and "immediately ready to clone" remotes; SSH is recommended for persistent and permanent storage of your course completions.
Can I write my own course?
Yes. A course is written in Lua — a simple interface for creating the course envelope, the stages it contains, and simple verification functions that receives the current git history as well as the incoming push.
You don't even need lua installed locally — push your implementation to the coursedev repository and a sandbox will automatically be created for you to experiment with.
See course development.
Can I use this to train my team?
That is exactly what custom courses are for. Author a course around your internal workflows and it runs on the same engine as the built-in catalog.
Need a course tailored for your team? Reach out to contact@pushups.sh to discuss how we can create a custom made course — just for you.
See course development.
Why do the courses read like workplace incidents?
Because every git concept worth learning was discovered the hard way by someone at the office.
You are the new hire; the cast causes the incidents — and your objective is to resolve them.
Is the platform open source?
The git server is going open source — see machinery for what the platform runs on, and future plans for the timeline.
Something else?
email: filip@pushups.sh
irc: #pushups.sh @ libera