@peterbe/gg
v0.0.14
Published
CLI tool for creating, committing, and generally managing your git branches.
Readme
gg2
CLI tool for creating, committing, and generally managing your git branches.
Installation
Homebrew
brew tap peterbe/gg2
brew install gg2To set up tab-completion, add this to your ~/.bashrc or ~/.zshrc file:
source <(gg2 shell-completion)Now, you should be able to type gg2 [TAB] and see all options.
You can also download the release binaries here: https://github.com/peterbe/gg2/releases
From source
git clone https://github.com/peterbe/gg2.git && cd gg2
bun install
bun run build
cp out/gg ~/bin
chmod +x ~/bin/ggCompiled
The source code for this CLI is written in TypeScript.
The code is compiled using bun to
an executable that is compiled specifically for your operating system, for example,
bun-darwin-arm64. Because it's compiled to a single executable binary, the
start-up time to run the CLI is very fast. ⚡
For example, the GitHub CLI, gh, is written in Go and is also compiled to a single
executable binary. For comparison, running the hyperfine command-line
benchmarking tool using:
hyperfine "gg --version" "gh --version"Results:
Benchmark 1: gg --version
Time (mean ± σ): 25.0 ms ± 0.7 ms [User: 21.2 ms, System: 9.4 ms]
Range (min … max): 23.6 ms … 28.5 ms 108 runs
Benchmark 2: gh --version
Time (mean ± σ): 29.3 ms ± 0.6 ms [User: 26.9 ms, System: 8.0 ms]
Range (min … max): 27.9 ms … 31.1 ms 90 runs
Summary
gg --version ran
1.17 ± 0.04 times faster than gh --versionThe point is; it takes on average 25 milliseconds to run the gg --version command.
Development
git clone https://github.com/peterbe/gg2.git
cd gg2
bun install
bun run buildThis will create an executable called out/gg.
You can test it with:
./out/gg --helpBut if you don't want to compile every time, you can simply type, for example:
bun run src/index.ts --helpIf you prefer to test with the compiled executable, you can run:
bun build --watch src/index.ts --target=bun --outfile ~/bin/gg --compilewhich will constantly compile an executable and it into your ~/bin directory.
Test and linting
To run the unit tests:
bun testTo format and check linting, run:
bun run lintIf you want to check the linting without formatting, run:
bun run lint:checkAbout Homebrew
The code that makes it possible to install with Homebrew is here: https://github.com/peterbe/homebrew-gg2
