Your Git workflow, in motion.
Git Tide is a command-line tool that sits on top of Git. Update branches, review Pull Requests and guard your repository with local hooks, without leaving the Git you already use.
Early development. Build from source today: Git 2.30+, Go 1.23+, Linux or macOS.
$ tide update
→ Fetching origin/stage
→ Updating local stage
→ Integrating stage into feature/login (merge)
✓ Updated to include stage
Less repetition. More flow.
Everyday Git work is a string of small, repetitive steps: refreshing a base branch, bringing it into your branch, checking out a Pull Request, remembering the commit format, keeping secrets out of history. Git Tide turns these routines into consistent commands and local checks, with Git still at the centre.
- One command for the routines you repeat daily.
- Rules your whole team shares, kept in the repository.
- Mistakes caught before they leave your machine.
A layer above Git. Not a replacement.
- You run a
tidecommand. - It reads
.tide.ymlfrom the repository root. - It checks the repository is safe: no detached HEAD, no uncommitted tracked changes, no merge in progress.
- It runs the Git you already have, one step at a time.
- It prints each step, and stops with a hint when something needs you.
No server, no database, no telemetry. Only create, update, push, review and pr touch the network, and each says so as it runs.
tide CLI
- Configuration (.tide.yml)
- Safety checks
- Git hooks
What Git Tide does
Implemented in the source today. There is no pre-built release yet, so you build it yourself.
-
Update a branch
Bring the base branch into your current branch with merge or rebase. It stops before touching uncommitted work and never stashes or resets.
tide updateImplemented -
Review a Pull Request
Check out a GitHub Pull Request on a predictable local branch. Forks work too.
tide review 123Implemented -
Create a branch
Start a new branch from a freshly fetched base, with no upstream until you push.
tide create feature/loginImplemented -
Open a Pull Request
Push the current branch and open a Pull Request, after showing a summary and asking you to confirm.
tide prImplemented -
Conventional Commits
A commit-msg hook rejects messages that aren’t Conventional Commits and shows a valid example.
commit-msg hookImplemented -
Secret scanning
A pre-commit hook scans only the lines you add. Findings show file, line and rule, never the value.
pre-commit hookImplemented -
Protected branches
Hooks block direct commits and pushes to protected branches, in any Git client, IDEs included.
pre-commit, pre-pushImplemented -
Diagnostics
Check Git, configuration, remote, base branch and each hook, without changing anything.
tide doctorImplemented
One command. A clearer workflow.
$ git switch stage
$ git pull --ff-only origin stage
$ git switch feature/login
$ git merge stage
The base branch comes from .tide.yml. Tide also fast-forwards local stage and refuses if uncommitted work is at risk. Conflicts are left in Git’s normal state for you to resolve.
Built around the way developers work.
- Git remains the source of truth. Tide runs the Git you already have, and plain git commands keep working.
- Project rules live in the repository. Commit .tide.yml so the whole team shares them.
- Automation is transparent. Every step is printed as it runs.
- Safe by default. It never stashes, resets or cleans for you, and force-push asks first.
- Nothing hidden. No telemetry, and tokens and secret values never reach the output.
Ready to move with the flow?
Build it from source and try it in a repository of your own.
git clone https://github.com/Cellestias/git-tide.git && cd git-tide
make build
Needs Git 2.30+ and Go 1.23+. Then put the tide binary on your PATH.
FAQ
Does Git Tide replace Git?
No. Tide runs the Git you already have and needs no server or database. Plain git commands keep working alongside it.
Is it tied to a language or framework?
No. Tide works on Git repositories, not on your code.
Do I need GitHub?
Not for create, update, push, init, doctor or the hooks, which only need Git. review and pr use the GitHub API and support github.com remotes. review works without a token on public repositories; pr needs GITHUB_TOKEN.
Can it prevent every secret from being committed?
No. Detectors cover AWS access key IDs, GitHub, Slack, Stripe live and Google API keys, and private key headers, plus your own patterns. It is best-effort: if a secret reaches a commit, rotate it.
Does local branch protection replace GitHub branch protection?
No. Anyone can bypass hooks with --no-verify. Keep branch protection enabled on GitHub; it is the authoritative control.
What happens to my existing Git hooks?
They are preserved. tide init renames an existing hook to <hook>.pre-tide, and it still runs after Tide’s checks pass.
Does it run on Windows?
Not tested. The installed hooks are POSIX shell scripts, so Linux and macOS are the supported targets for now.
Is Git Tide available now?
You can build it from source. A versioned, pre-built release is not published yet.