Skip to content
forked from boyvinall/dirtygit

Finds git repos in need of commitment

License

Notifications You must be signed in to change notification settings

mipmip/dirtygit

 
 

Repository files navigation

dirtygit

Do you find yourself context-switching between a bunch of different git repos?

Have you ever accidentally discovered that changes you've made locally have not been committed or pushed to your git server?

dirtygit is a text-mode UI tool to find git repos that have uncommitted files or which have not been pushed to a remote.

Source-mode installation

go install github.com/boyvinall/dirtygit@master

Configuration

Copy .dirtygit.yml to ~/.dirtygit.yml and edit to your needs.

Running

dirtygit [ <directories...> ]

If one/more directories are specified as <directories>, then this will override the scandirs.include from your config file.

demo

UI

Simple key navigation in the UI as follows:

Key Action
<up> / <down> Navigation inside repositories or diff views
<tab> switch focus between repositories and diff views
e Open selected repo in editor (current vscode)
s Rescan directories
q / ctrl-C quit

Inside the "diff" view, a list of dirty files is shown, with the git status for both staged changes (S) and working directory (W).

Development

make lint

Future

  • Also scan for local changes which have not been pushed
  • Allow configuration of editor
  • Improve error logging and presentation
  • Possibly show git diff
  • Allow deletion of files / repositories
  • Add tests!

Pim First

  • ignore dir errors
  • simple build task
  • dir wildcards
  • exclude part of paths
  • custom edit command

Pim Future

  • flake
  • refact into src
  • output to json
  • deamon mode
  • menubar https://github.com/fyne-io/systray
  • add regex to exclude
  • if no starting slash, compare from right to left
  • help popup
  • enable global gitignore conf which is already visible in config

About

Finds git repos in need of commitment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 92.7%
  • Nix 7.1%
  • Makefile 0.2%