git-town

command module
v16.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2024 License: MIT Imports: 4 Imported by: 0

README

Git Town logo
end-to-end test status unit test status linters and documentation test status windows tests Go report card status Netlify deploy status

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
  • 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.

Stargazers over time

Documentation

Overview

Git Town - a high-level CLI for Git

Git Town adds Git commands that make software development more efficient by keeping Git branches better in sync with each other. This reduces merge conflicts and the number of Git commands you need to run.

Directories

Path Synopsis
internal
browser
Package browser allows interacting with the default browser on the user's machine.
Package browser allows interacting with the default browser on the user's machine.
cli
Package cli provides tooling to interact with the command-line environment that Git Town runs in.
Package cli provides tooling to interact with the command-line environment that Git Town runs in.
cli/colors
Package colors provides definitions for ANSI colors to be used in terminal output.
Package colors provides definitions for ANSI colors to be used in terminal output.
cli/dialog
Package dialog provides high-level screens through which the user can enter data into Git Town.
Package dialog provides high-level screens through which the user can enter data into Git Town.
cli/dialog/components
Package components contains shared components to build full dialog screens out of.
Package components contains shared components to build full dialog screens out of.
cli/dialog/components/list
Package list provides a generic list implementation to be used inside BubbleTea-based dialog components.
Package list provides a generic list implementation to be used inside BubbleTea-based dialog components.
cli/flags
Package flags provides helper methods for working with Cobra flags in a way where Go's usage checker (which produces compilation errors for unused variables) enforces that the programmer didn't forget to define or read the flag.
Package flags provides helper methods for working with Cobra flags in a way where Go's usage checker (which produces compilation errors for unused variables) enforces that the programmer didn't forget to define or read the flag.
cli/format
Package format formats data for printing to the CLI.
Package format formats data for printing to the CLI.
cli/io
Package io provides low-level access to operating system primitives in a way that works across different operating systems.
Package io provides low-level access to operating system primitives in a way that works across different operating systems.
cli/print
Package print outputs complex data structures to the CLI.
Package print outputs complex data structures to the CLI.
cmd
Package cmd defines the Git Town commands.
Package cmd defines the Git Town commands.
cmd/cmdhelpers
Package cmdhelpers provides utility functions for defining Cobra commands.
Package cmdhelpers provides utility functions for defining Cobra commands.
cmd/config
Package config implements Git Town's "config" command.
Package config implements Git Town's "config" command.
cmd/debug
Package debug implements Git Town's hidden "debug" command.
Package debug implements Git Town's hidden "debug" command.
cmd/ship
Package ship implements Git Town's "ship" command.
Package ship implements Git Town's "ship" command.
cmd/status
Package status implements Git Town's "status" subcommand.
Package status implements Git Town's "status" subcommand.
cmd/sync
Package sync provides functionality around syncing Git branches.
Package sync provides functionality around syncing Git branches.
config
Package config provides functionality to read and write the Git Town configuration.
Package config provides functionality to read and write the Git Town configuration.
config/configdomain
Package configdomain defines domain concepts and data types around Git Town configuration.
Package configdomain defines domain concepts and data types around Git Town configuration.
config/configfile
Package configfile provides functionality around storing Git Town configuration information in a dedicated configuration file.
Package configfile provides functionality around storing Git Town configuration information in a dedicated configuration file.
config/confighelpers
Package confighelpers provides utilities that help with all configuration stores.
Package confighelpers provides utilities that help with all configuration stores.
config/envconfig
Package envconfig provides functionality to read configuration overrides from environment variables.
Package envconfig provides functionality to read configuration overrides from environment variables.
config/gitconfig
Package gitconfig provides functionality around storing Git Town configuration information as Git metadata.
Package gitconfig provides functionality around storing Git Town configuration information as Git metadata.
execute
Package execute provides reusable high-level functionality shared by all Git Town commands but doesn't have a place in other subsystems because it needs to use many subsystems together.
Package execute provides reusable high-level functionality shared by all Git Town commands but doesn't have a place in other subsystems because it needs to use many subsystems together.
git
Package git provides access to Git.
Package git provides access to Git.
git/gitdomain
Package gitdomain defines basic concepts from the domain of Git: branches, remotes, commit SHAs, etc.
Package gitdomain defines basic concepts from the domain of Git: branches, remotes, commit SHAs, etc.
git/giturl
Package giturl provides facilities to work with the special URL formats used in Git remotes.
Package giturl provides facilities to work with the special URL formats used in Git remotes.
gohacks
Package gohacks implements all the small things that are needed during programming but not present in Go or its standard library.
Package gohacks implements all the small things that are needed during programming but not present in Go or its standard library.
gohacks/cache
Package cache provides infrastructure to cache things in memory.
Package cache provides infrastructure to cache things in memory.
gohacks/mapstools
Package mapstools provides helper functions for working with Go maps.
Package mapstools provides helper functions for working with Go maps.
gohacks/slice
Package slice provides generic functions to work with slices.
Package slice provides generic functions to work with slices.
gohacks/stringslice
Package stringslice provides functionality around string slices.
Package stringslice provides functionality around string slices.
hosting
Package hosting provides support for interacting with code hosting platforms.
Package hosting provides support for interacting with code hosting platforms.
hosting/bitbucket
Package bitbucket provides the code hosting connector for BitBucket.
Package bitbucket provides the code hosting connector for BitBucket.
hosting/gitea
Package gitea provides the code hosting connector for Gitea.
Package gitea provides the code hosting connector for Gitea.
hosting/github
Package github provides the code hosting connector for GitHub.
Package github provides the code hosting connector for GitHub.
hosting/gitlab
Package gitlab provides the code hosting connector for GitLab.
Package gitlab provides the code hosting connector for GitLab.
hosting/hostingdomain
Package hostingdomain provides the domain model for code hosting platforms.
Package hostingdomain provides the domain model for code hosting platforms.
messages
Package messages implements I18N for Git Town.
Package messages implements I18N for Git Town.
regexes
Package regexes helps work with multiple regular expressions at the same time.
Package regexes helps work with multiple regular expressions at the same time.
skip
Package skip provides Git Town's skip functionality.
Package skip provides Git Town's skip functionality.
subshell
Package subshell provides facilities to execute CLI commands in subshells.
Package subshell provides facilities to execute CLI commands in subshells.
undo
Package undo provides Git Town's undo functionality.
Package undo provides Git Town's undo functionality.
undo/undobranches
Package undobranches restores the Git branches to a known snapshot.
Package undobranches restores the Git branches to a known snapshot.
undo/undoconfig
Package undoconfig undoes changes to the configuration settings stored as Git metadata.
Package undoconfig undoes changes to the configuration settings stored as Git metadata.
undo/undodomain
Package undodomain provides the domain model for Git Town's undo functionality.
Package undodomain provides the domain model for Git Town's undo functionality.
undo/undostash
Package undostash restores changes to the Git stash.
Package undostash restores changes to the Git stash.
validate
Package validate provides functionality to validate the status of Git repositories.
Package validate provides functionality to validate the status of Git repositories.
vm/interpreter/config
Package config contains lifecycle commands to store runstate for Git Town commands that only change configuration.
Package config contains lifecycle commands to store runstate for Git Town commands that only change configuration.
vm/interpreter/full
Package interpreter implements the virtual machine for executing steps of Git Town commands.
Package interpreter implements the virtual machine for executing steps of Git Town commands.
vm/interpreter/light
Package light provides a lightweight interpreter that ignores errors.
Package light provides a lightweight interpreter that ignores errors.
vm/opcodes
Package opcodes defines the individual operations that the Git Town VM can execute.
Package opcodes defines the individual operations that the Git Town VM can execute.
vm/optimizer
Package optimizer optimizes VM programs.
Package optimizer optimizes VM programs.
vm/program
Package program provides facilities to represent and build collections of steps.
Package program provides facilities to represent and build collections of steps.
vm/runstate
Package runstate represents the current execution status of a Git Town command.
Package runstate represents the current execution status of a Git Town command.
vm/shared
Package shared provides infrastructure used by all VM packages.
Package shared provides infrastructure used by all VM packages.
vm/statefile
Package statefile stores Git Town runstate on disk.
Package statefile stores Git Town runstate on disk.
pkg
Package pkg provides exposes the visible parts of the Git Town codebase.
Package pkg provides exposes the visible parts of the Git Town codebase.
prelude
Package prelude is the "standard library" for strongly-typed Go codebases.
Package prelude is the "standard library" for strongly-typed Go codebases.
set
Package set provides a Set implementation for Go.
Package set provides a Set implementation for Go.
Package test provides the infrastructure for the end-to-end tests.
Package test provides the infrastructure for the end-to-end tests.
asserts
Package asserts provides additional assertions used in tests.
Package asserts provides additional assertions used in tests.
commands
Package commands provides test-specific Git commands.
Package commands provides test-specific Git commands.
cucumber
Package cucumber provides support for the Cucumber-based tests.
Package cucumber provides support for the Cucumber-based tests.
datatable
Package datatable supports comparing Gherkin tables in test code.
Package datatable supports comparing Gherkin tables in test code.
envvars
Package envvars provides helper functions to work with lists of environment variables as provided by `os.Environ`.
Package envvars provides helper functions to work with lists of environment variables as provided by `os.Environ`.
filesystem
Package filesystem provide filesystem-specific helpers for test code.
Package filesystem provide filesystem-specific helpers for test code.
fixture
Package fixture helps create test fixtures.
Package fixture helps create test fixtures.
git
Package git provides support for describing Git repositories in test code.
Package git provides support for describing Git repositories in test code.
helpers
Package helpers provides various utilities that help write ergonomic test code.
Package helpers provides various utilities that help write ergonomic test code.
ostools
Package ostools provides OS (operating-system) specific support for tests.
Package ostools provides OS (operating-system) specific support for tests.
output
Package output provides support for parsing the CLI output of the Git Town executable in tests.
Package output provides support for parsing the CLI output of the Git Town executable in tests.
subshell
Package subshell provides support for running shell commands in unit and E2E tests.
Package subshell provides support for running shell commands in unit and E2E tests.
testruntime
Package testruntime provides Git runtime support for unit and E2E tests.
Package testruntime provides Git runtime support for unit and E2E tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL