Skip to content

a3chron/gith

Repository files navigation

         ██┐         ██┐        
         └─┘   ██┐   ██│        
 ██████┐ ██┐ ██████┐ ██████┐    
 ██┌─██│ ██│ └─██┌─┘ ██┌─██│    
 ██│ ██│ ██│   ██│   ██│ ██│    
 ██████│ ██│   ████┐ ██│ ██│    
 └───██│ └─┘   └───┘ └─┘ └─┘    
     ██│  A TUI git helper      
 ██████│  with catppuccin theme,
 └─────┘  written in Go         
Logo

Why try gith?
It brings little quality-of-life improvements that can make working with git feel smoother and sometimes even a bit quicker. For example, the “Add Tag” feature (also shown under “More Images” below the preview GIF) offers Patch / Minor / Major besides the Manual Input of tags.
Apart from that, it also just looks good ;)

Catppuccin flavors preview

More Images

For the terminal customization / starship config, check out my ubuntu customization blog article.
This is the full setup, for only starship scroll down to the starship section.

Table of Contents

Installation

Go

If you already have Go installed, or plan to do so (easy to get new updates): Install via Go

Tip

If you installed gith via go install, you can run gith update to get the latest version of gith.

Binaries

If you don't wish to use Go, you can install gith via Binaries: Install via Binaries

For updates, you have to download and install the new binaries manually again

Usage

After the installation finished, just run:

gith

Some commands like adding tags are also accessible via quick select, check out the What is and what will be (features) section, to see which commands are supported.

As an example, quick select for "git tag ":

gith tag

which will start interactive mode, but already at a point to select the tag, i.e. patch / minor / major / manual input.

For more info run gith help or check out the help articles.

Gith tries to use intuitive, natural language commands, combined with the usual git commands, for example gith tag or gith update remote url.

You can also get completions for fish, base or zsh: Completions

Customization

You can set your preferred flavor and accent in the Options.
Just run gith and select "Options".

For more info check out the help articles.

What is and what will be

You can view the Roadmap / upvote Feature Requests and Bugs at Featurebase.

  • Branch

    • Switch Branch -- supports quick select --

    • List Branches -- supports quick select --

    • Delete Branch -- supports quick select --

    • Create Branch

  • Status

    • View working tree status (Modified, Added, Deleted, Untracked files) -- supports quick select --
  • Commit

    • Undo Last Commit -- supports quick select --

    • Commit staged changes -- supports quick select --

    • Commit all changes -- supports quick select --

    • Amend last commit

  • Tag

    • List Tags -- supports quick select --

    • Remove Tag

    • Push Tag -- supports quick select --

    • Add Tag -- supports quick select --

  • Remote

    • List Remotes

    • Add Remote -- supports quick select --

    • Remove Remote

    • Update Remote url

    • Push with remotes

    • Pull with remotes

  • Changes

    • View diff of changes

    • Stage individual files

    • Unstage individual files

  • Options

    • Change UI flavor

    • Change UI accent color

    • Change fetch behaviour on Init

Contributing

Contributions are welcome, please use conventional commits for a constant commit message style. If you reaaally struggle with conventinal commits, check out Meteor, or just use gith's built in commit feature.
For feature requests or possible improvements please create an issue at Featurebase.

For local development, fork & clone the repo, then build using:

go build -o gith

Run with:

./gith

Thanks

  • BubbleTea for making it possible to build this
  • opencode for the design inspiration (copied their starting dialog 1:1)

Support

If you want to support me, feel free to upvote gith on producthunt, and give some feedback :) You can also upvote feature requests or bugs that you want fixed at Featurebase.

Gith (beta) - A Terminal UI for git | Product Hunt