Awesome
<p align="center"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/git-town/git-town/main/website/src/logo.svg"> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/git-town/git-town/main/website/src/logo-dark.svg"> <img alt="Git Town logo" src="https://raw.githubusercontent.com/git-town/git-town/main/website/src/logo.svg"> </picture> <br> <img src="https://github.com/git-town/git-town/actions/workflows/cuke.yml/badge.svg" alt="end-to-end test status"> <img src="https://github.com/git-town/git-town/actions/workflows/unit.yml/badge.svg" alt="unit test status"> <img src="https://github.com/git-town/git-town/actions/workflows/lint_docs.yml/badge.svg" alt="linters and documentation test status"> <img src="https://github.com/git-town/git-town/actions/workflows/windows.yml/badge.svg" alt="windows tests"> <a href="https://goreportcard.com/report/github.com/git-town/git-town"><img src="https://goreportcard.com/badge/github.com/git-town/git-town" alt="Go report card status"></a> <img src="https://api.netlify.com/api/v1/badges/c2ea5505-be48-42e5-bb8a-b807d18d99ed/deploy-status" alt="Netlify deploy status"> </p>Git Town provides additional Git commands that automate the creation, synchronization, shipping, and cleanup of Git branches. Compatible with all popular Git workflows like Git Flow, GitHub Flow, GitLab Flow, and trunk-based development. Supports mono-repos and stacked changes. Check out this screencast for an introduction.
Basic development commands
- git hack - create a new up-to-date feature branch off the main branch
- git sync - update existing branches, remove shipped branches
- git switch - switch between branches via text UI
- git propose - create a pull or merge request for a feature branch
Stacked changes
- git append - insert a new branch as a child of the current branch
- git diff-parent - show the changes committed to a feature branch
- git prepend - insert a new branch between the current branch and its parent
- git set-parent - update the parent of a branch
Limit branch syncing
- git contribute - add commits to somebody else's feature branch
- git observe - track somebody else's feature branch without contributing to it
- git park - stop syncing one of your feature branches
- git prototype - sync but don't push a branch
Dealing with errors
- git town continue - restart the last Git Town command after having resolved conflicts
- git town skip - restart the last run Git Town command by skipping the current branch
- git town status - displays or resets the current suspended Git Town command
- git town undo - undo the most recent Git Town command
Setup and configuration
- git town config - display or update your Git Town configuration
- git town config setup - run the visual setup assistant
- git town offline - start or stop running in offline mode
Advanced development commands
- git town compress - squash all commits on feature branches down to a single commit
- git kill - remove a feature branch
- git rename-branch - rename a branch
- git repo - view the repository homepage
- git ship - merge a completed feature branch and remove it
Installation
See the installation and configuration instructions.
Documentation
The Git Town website provides documentation for Git
Town users. git town help [command]
shows help on the CLI.
Contributing
Found a bug or have an idea for a new feature? Open an issue or send a pull request! Our developer documentation helps you get started.