04/02/2023

Bit is a modern Git CLI. Contribute to chriswalz/bit development by creating an account on GitHub.

bit is an experimental modernized git CLI built on top of git that provides happy defaults and other niceties:

  • command and flag suggestions to help you navigate the plethora of options git provides you
  • autocompletion for files and branch names when using
    bit add or bit checkout
  • automatic fetch and branch fast-forwarding reducing the likelihood of merge conflicts
  • suggestions work with git aliases
  • new commands like bit sync that vastly simplify your workflow
  • commands from git-extras such as bit release & bit info
  • fully compatible with git allowing you to fallback to git if need be.

Install
using cURL (Simplest way to install)
curl -sf https://gobinaries.com/chriswalz/bit | sh;
curl -sf https://gobinaries.com/chriswalz/bit/bitcomplete | sh &&echo y | COMP_INSTALL=1 bitcomplete
using go (Harder way to install)
Caveats: GOPATH and GOBIN need to be set. Verify with go env. If they are not set, add this to your .bashrc or .bash_profile etc. AND open new terminal
export GOPATH=$HOME/go
export GOBIN=$(go env GOPATH)/bin
GO111MODULE=on go get github.com/chriswalz/bit@latest;
GO111MODULE=on go get github.com/chriswalz/bit/bitcomplete@latest;
COMP_INSTALL=1 bitcomplete;
using go (For Windows Users)
go env -w GO111MODULE=on;
go get github.com/chriswalz/bit@latest;
bit
Note: On Windows only the interactive prompt completion works not classic tab completion
Verify installation with:
bit
Dependencies: Git
Platform Support:

  • iTerm2 (macOS)
  • Terminal.app (macOS)
  • Command Prompt (Windows)
  • gnome-terminal (Ubuntu)

Bit specific command Usage
Create a new commit
bit save [commit message]
Save your changes to the current branch [amends current commit when ahead of origin]
bit save
Synchronize your changes to origin branch (Beta)
bit sync
You have access to ALL git commands as well. 90% of the time the above commands will have you covered.
bit commit -m “I can still use git commands”, bit pull -r origin master
Example Workflow
bit switch example-branch
Branch does not exist. Do you want to create it? Y/n
yes
Switched to a new branch ‘example-branch’
[Makes some changes]
bit save “add important feature”
[fix an error for important feature]
bit save
[push changes to origin]
bit sync
[two days later confirm your branch is in sync with origin]
bit sync
Features

  • Automatic fetching & fast forwarding to keep your branches up to date and prevent merge conflicts
  • Simplify your entire rebase workflow with a single command bit sync
  • Automatic suggestions at your fingertips
  • bit is fully compatible with git. All features of git are available if need be.

Common commands at your finger tips
Commit, bump a tag and push with a single command
Instant git statistics and config information
Principles

  1. Think in the age of the cloud
  2. Embed the spirit of modern day workflows
  3. Favor simplicity over complexity
  4. Bit should have happy defaults
  5. Bit must be fully compatible with Git

Inspiration
Thanks to Gitless, git-extras, researchers in the field and of course the developers of git itself! Also, thanks to go-prompt for the interactive prompt library
News
Changelog
v0.5
v0.4
How to uninstall
go binaries are self-contained so uninstalling simply requires deleting the binary(ies)
rm `which bit`
rm `which bitcomplete`