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
orbit 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.
curl -sf https://gobinaries.com/chriswalz/bit | sh;
curl -sf https://gobinaries.com/chriswalz/bit/bitcomplete | sh && echo y | COMP_INSTALL=1 bitcomplete
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;
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)
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
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
- 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 withgit
. All features of git are available if need be.
- Think in the age of the cloud
- Embed the spirit of modern day workflows
- Favor simplicity over complexity
- Bit should have happy defaults
- Bit must be fully compatible with Git
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
- https://www.tldrnewsletter.com/archives/20201007
- https://www.reddit.com/r/golang/comments/j5wggn/bit_an_experimental_git_cli_with_a_powerful/
- https://b.hatena.ne.jp/entry/s/github.com/chriswalz/bit
- https://news.hada.io/topic?id=2990
v0.5
-
bit switch
,bit co
,bit checkout
will show prompt - fix bit tab completion (bitcomplete)
- fix edge case where there is an invalid ref
- various minor fixes
- Deployment: automatic versioning
v0.4
- multiline support with Go Survey Library
- color mitigation to have roughly similar colors across OSs
- fix README go get installation instructions
- QOL improvements for
bit sync
go binaries are self-contained so uninstalling simply requires deleting the binary(ies)
rm `which bit`
rm `which bitcomplete`