Hey everyoneđź‘‹, english isn't my first language so sorry if anything sounds off.
I'm a self-taught student and i kept running into the same annoying thing, every time i started or updated a project i was chaining the same git commands over and over. so i built GitGo to wrap all of that into something shorter.
instead of:
git init && git add . && git commit -m "init" && git remote add origin <url> && git push -u origin main
you just do:
gitgo link <url> "init"
it also handles SSH auto-setup, auto-converts HTTPS remotes to SSH, and works on Termux (android) which honestly took me longer to figure out than i'd like to admit.
I'm not sure everything is built the right way since i mostly figured this out on my own with some help of my classmate, so any feedback, criticism, or advice is genuinely appreciated. Open source too if anyone's interested in contributing.
Repo: GitGo
Would love to hear any thoughts, feedback, or suggestions 🙏
Top comments (2)
This is the best kind of tool to build - it scratches a real itch you hit every single day, the scope is tight, and the payoff is immediate. The "automate the 5 commands I always type" project teaches more than most tutorials because you're forced to handle the real edge cases: what if the repo already exists, what if the remote's taken, what if git's not configured, what if you're not in an empty dir. Those branches are where a toy becomes a tool people actually trust to run unattended.
The thing that separates a good init-CLI from a great one is exactly that: being safe to run when the world isn't clean - check-before-write, idempotent, and never clobber existing state. That "verify the preconditions before you act" discipline is the same one I care about in Moonshift, the thing I build - a multi-agent pipeline that takes a prompt to a deployed SaaS on your own GitHub + Vercel, where each step verifies before it commits instead of blindly running. Same spirit as a git tool that checks before it inits. Multi-model routing keeps a build ~$3 flat, first run's free no card. Nice little tool. Did you make the command sequence configurable (per-project presets), or is it a fixed opinionated flow? The opinionated version is usually the one people actually keep using.
Thanks for the feedback, that means a lot for me 🙌.
So to answer your question, right now it's more of a fixed opinionated flow kind of a thing. There's a
gitgo configwhere you can set like your default branch name or commit message but that's pretty much it, nothing fancy. The sequences just run the way they run, no way to change the order or anything like that, but I will take note of that cause I didn't think about that approach so thank you for that suggestion.And yeah what you said about edge cases, honestly that's probably the part I haven't fully figured out yet. Still something I need to sit down and work on. Still have a lot to learn, but feedback like this helps. Thanks again 🙌.