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
- hack - create a new up-to-date feature branch off the main branch
- sync - update existing branches, remove shipped branches
- switch - switch between branches via text UI
- propose - create a pull or merge request for a feature branch
Stacked changes
- append - insert a new branch as a child of the current branch
- diff-parent - show the changes committed to a feature branch
- merge - merge two adjacent branches in a stack into one
- prepend - insert a new branch between the current branch and its parent
- set-parent - update the parent of a branch
Limit branch syncing
- contribute - add commits to somebody else's feature branch
- observe - track somebody else's feature branch without contributing to it
- park - stop syncing one of your feature branches
- prototype - sync but don't push a branch
Dealing with errors
- continue - restart the last Git Town command after having resolved conflicts
- skip - restart the last run Git Town command by skipping the current branch
- status - displays or resets the current suspended Git Town command
- undo - undo the most recent Git Town command
Setup and configuration
- config - display or update your Git Town configuration
- config setup - run the visual setup assistant
- offline - start or stop running in offline mode
Advanced development commands
- compress - squash all commits on feature branches down to a single commit
- delete - remove a feature branch
- rename - rename a branch
- repo - view the repository homepage
- 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.