4 releases (breaking)
0.4.0 | Aug 8, 2021 |
---|---|
0.3.0 | Jul 25, 2021 |
0.2.0 | Apr 25, 2021 |
0.1.0 | Apr 25, 2021 |
#1251 in Development tools
38KB
966 lines
g2, an alternative terminal interface for git
Installation
Using cargo: Run cargo install g2
From source: Clone this repository and run cargo install --path=.
Once you've installed g2
, run g2 check
to verify that your system is set up correctly.
To enable teleport
, which allows g2
to change your
current directory in zsh install this into your ~/.zshrc
:
g2 () {
G2=`whence -p g2`
$G2 $@
if [ $? -eq 3 ]
then
cd `cat /tmp/g2-destination`
fi
}
g2 auto
Usage
First, double check that your installation is successful:
$ g2 check
If everything is set up correctly, this will print out something like:
g2 is checking your setup...
[ok] the git command exists
[ok] the gh command exists
[ok] you're logged into github
[ok] tmux is installed
[ok] you are currently in a tmux window
[ok] you're using zsh, and teleport is set up correctly
If it fails, follow the instructions to fix the problem.
Next, clone a repository using g2 clone
, e.g.
$ g2 clone git@github.com:colin353/g2.git
You can use SSH or HTTPS, whatever works with git works with g2. Note, this checks out the repo to ~/.g2/repos, not to whatever directory you're in. To start developing, you'll need to create a branch:
$ g2 new my-bugfix
This will create a git worktree branch called my-bugfix
which is based on main
. If you have teleport set up,
it will automatically jump you to that directory.
Now make some changes in the branch. If you want to see your changes, you can use
$ g2 status
which will show something like
Local branch (my-bugfix)
[+16, -6] README.md
[new] my-new-file.txt
Here, I've made a couple of changes to my README and added a new file. Next I want to create a PR
based on these changes, so run g2 upload
:
$ g2 upload
Your editor will open for you to add a title and description. Once you close the editor, a PR will be created for you and you'll see a link in your terminal:
PR created, go to https://github.com/colin353/g2/pull/22
Todo list:
- Detect and show merge conflicts better
- Bypass gh and create PRs via API?
- More info on installation/usage (including
g2 auto
, teleport setup) - Demo GIF
- When pushing a PR, change the last commit message to be the PR title?
- Reduce dependencies?
- Zsh/bash completions
- Support branch prefixes
- Write docs on usage
- Make
g2 revert
work with deleted files
Dependencies
~12–22MB
~387K SLoC