git-town

command module
v15.3.0 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 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.

Typical 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 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 prepend - insert a new branch between the current branch and its parent
  • git set-parent - update the parent of a branch

Branch Types

  • git observe - track somebody else's feature branch without contributing to it
  • git contribute - add commits to somebody else's feature branch
  • git park - stop syncing one of your feature branches

Advanced development commands

Configuration

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 dialog contains shared components to build full dialog screens out of.
Package dialog 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.
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/commandconfig
Package commandconfig provides reusable infrastructure for the configuration of Git Town commands
Package commandconfig provides reusable infrastructure for the configuration of Git Town commands
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/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/slice
Package slice provides generic functions to work with slices.
Package slice provides generic functions to work with slices.
hosting
Package hosting provides support for interacting with code hosting platforms.
Package hosting provides support for interacting with code hosting platforms.
subshell
Package subshell provides facilities to execute CLI commands in subshells.
Package subshell provides facilities to execute CLI commands in subshells.
sync
Package sync provides functionality around syncing branches.
Package sync provides functionality around syncing branches.
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/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 runvm implements the virtual machine for executing steps of Git Town commands.
Package runvm implements the virtual machine for executing steps of Git Town commands.
vm/interpreter/light
a lightweight interpreter that ignores errors, for running undo programs
a lightweight interpreter that ignores errors, for running undo programs
vm/opcodes
Package opcode defines the individual operations that the Git Town VM can execute.
Package opcode defines the individual operations that the Git Town VM can execute.
vm/program
Package steps provides facilities to represent and build collections of steps.
Package steps 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/statefile
Package persistence stores Git Town runstate on disk.
Package persistence stores Git Town runstate on disk.
pkg
prelude
Package is the "standard library" for strongly-typed Go codebases.
Package is the "standard library" for strongly-typed Go codebases.
set
Package test provides the infrastructure for the end-to-end tests.
Package test provides the infrastructure for the end-to-end tests.
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`.
git

Jump to

Keyboard shortcuts

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