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 ;)
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.
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.
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
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
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.
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
-
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
- BubbleTea for making it possible to build this
- opencode for the design inspiration (copied their starting dialog 1:1)
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.