You already have a Git server

sheelagay2 pts0 comments

You Already Have a Git Server | GoPeek

DevOps<br>Git<br>Deployment

You Already Have a Git Server

2025-10-24 — 2026-01-26<br>4 min read<br>By GoPeek Team

If you have a git repository on a server with SSH access, you can just clone it:

git clone ssh://username@hostname/path/to/repo

That is it. No Docker. No CI pipeline. No serverless function. No YAML file with 47 indents. Just SSH and git — two tools you already have.

Once you have done some work, you can push your changes back to the origin server. By default, git will not let you push to the branch that is currently checked out, but this is easy to change:

Run this on the remote server.

git config receive.denyCurrentBranch updateInstead

This is a nice way to work on server-side files without SSH lag or error-prone copying. You edit locally, commit normally, and git push just works. The files land on the server exactly as they are in your repo. No scp. No rsync flags you forgot. No "oops I overwrote the wrong file."

Auto-Deploy with Hooks

If you need more than just a file server, git can run a shell script when it receives a new push:

cat > .git/hooks/post-update #!/bin/sh<br>set -euo pipefail<br>cd /path/to/site<br>/path/to/generator<br>EOF<br>chmod a+x .git/hooks/post-update

You will even get the script's output sent back to your computer's terminal. So if your static site generator throws an error, you see it immediately. No tab-switching to a dashboard. No refreshing a build log page.

I have git set up to this blog's site generator. It is just so groovy to be able to type up posts locally, and then push them to the server. Write. Commit. Push. Live. That is the whole workflow.

🛡️ Two copies, zero effort

If the server breaks, you still have the copy on your laptop. If your laptop breaks, you can download everything from the server. Git is distributed by design. Your backup strategy is not a strategy — it is a side effect.

Compare that to a typical "modern" setup: your files live in a proprietary CMS, the database is on a managed instance, the media is in object storage, and your deployment pipeline is a 200-line GitHub Actions file that breaks every time a dependency updates. And your backup? A cron job you set up once and forgot to monitor.

With git-over-SSH, you get version history, rollback, branching, and off-site backup for free. The tools are 20 years old and they will still be here in 20 more.

One-line rule: If you can SSH into it, you can deploy to it. Stop complicating what git already solved.

-->

Available Now

Get GoPeek

Preview links without opening tabs. Available on Edge and Firefox. Chrome support coming soon.

Microsoft Edge

Add to Edge — free

Mozilla Firefox

Add to Firefox — free

Google Chrome<br>Soon

Coming to the Chrome Web Store

More on Development

Read Next

Deno vs Node.js: Building a Sub-ms Local Proxy for Link Previews

Read Next

Claude Opus 4.5 vs GLM-5.2

Read Next

Native Apps vs Electron Apps: The Desktop Tab Hoarders

Read Next

V8 vs SpiderMonkey: Memory Fragmentation at 100 Idle Tabs

server push already read file site

Related Articles