close
Skip to content

Repository files navigation

$ g

Passthrough to your current directory's VCS.

Python Package Docs Build Status Code Coverage License

A command-line shortcut that runs your current directory's VCS command, whether it's git, subversion (svn), or mercurial (hg). Requires Python 3.10 or newer.

Install

$ pip install --user g

Or install with uv:

$ uv tool install g

Working inside a uv-managed project:

$ uv add g

For one-off use without installing globally:

$ uvx g
$ g

Developmental releases

You can test the unpublished version of g before its release.

  • pip:

    $ pip install --user --upgrade --pre g
  • uv:

    $ uv tool install --prerelease=allow g
    $ uv add g --prerelease allow
    $ uvx --from 'g' --prerelease allow g
  • pipx:

    $ pipx install --suffix=@next g --pip-args '\--pre' --force

    Then use g@next --help.

Usage

$ g status

Inside a git checkout, that runs git status; inside svn, svn status; inside mercurial, hg status. g intercepts only -V/--version — everything else, including -h/--help, forwards straight to the detected VCS. The VCS's own stdout and stderr print through unchanged, but g's exit status does not mirror the wrapped command's: a completed run always exits 0. Outside a VCS directory, g prints No VCS found in current directory. to stderr and stops.

Full detection order and command reference: https://g.git-pull.com/cli/index.html.

Credits

2021-12-05: Thanks to John Shanahan (@_shanahanjrs) for giving g use g

Donations

Your donations fund development of new features, testing and support. Your money will go directly to maintenance and development of the project. If you are an individual, feel free to give whatever feels right for the value you get out of the project.

See donation options at https://tony.sh/support.html.

More information

About

g: Sync your current directories VCS (or reach for one via `--cwd`)

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages