1
0
Fork 0
mirror of https://github.com/Luzifer/git-recurse-status.git synced 2024-12-22 03:51:19 +00:00
Wrapper around git to display status of a whole tree of directories to detect uncommitted or not pushed changes
Find a file
2016-10-28 22:01:23 +02:00
Godeps Initial version 2016-10-28 01:51:44 +02:00
vendor Initial version 2016-10-28 01:51:44 +02:00
.gitignore Initial version 2016-10-28 01:51:44 +02:00
.repo-runner.yaml Publish to Github 2016-10-28 01:55:32 +02:00
History.md prepare release v0.3.0 2016-10-28 15:57:03 +02:00
main.go Change "unknown" to "untracked" to be more in git language 2016-10-28 15:53:59 +02:00
Makefile Add install target 2016-10-28 22:01:23 +02:00
publish.sh Fix: Make publish script executable 2016-10-28 01:59:25 +02:00
README.md Update README 2016-10-28 22:00:22 +02:00

Luzifer / git-recurse-status

Wrapper around git to display status of a whole tree of directories to detect uncommitted or not pushed changes.

Features

  • Recurse through a directory tree
  • Display changes in a short manner
  • Filter output by full-text search
  • Filter output by a combinable set of filters
  • Change format of output using Go templates

Usage

# git-recurse-status --help
Usage of git-recurse-status:
  -f, --filter stringSlice   Attributes to filter for
      --format string        Output format (default "[{{.U}}{{.A}}{{.M}}{{.R}}{{.D}}{{.S}} {{.State}}] {{.Path}} ({{if .Remote}}{{.Remote}} » {{end}}{{.Branch}})")
      --or                   Switch combining of filters from AND to OR
  -s, --search string        String to search for in output
      --version              Prints current version and exits

Filters

Possible filters:

  • By status against the remote:
    • diverged - Local and remote do have different commits
    • ahead - Local has new commits
    • behind - Remote has new commits (remote repository is not automatically fetched!)
    • uptodate - No known changes against remote
  • By local changes:
    • untracked - There are files not yet known to git
    • added - Local files are added to the index but not yet committed
    • modified - Local files are modified but not added to the index
    • removed - Local files were removed but not yet deleted from the index
    • deleted - Files are marked to be removed in the index
    • stashed - You have changes in the stash
    • changed - Shortcut for all local changes at once
  • Other filters
    • remote - Repositories having a remote named "origin" set

All filters mentioned above are extendable with the prefix no- to negate them (example: no-changes).

Example usage for filters:

# git recurse-status -f no-uptodate
[] dockerproxy_config (git@bitbucket.org:luzifer/dockerproxy_config.git » master)
[  M    →] knut-ws (git@github.com:Luzifer/workstation.git » master)

# git recurse-status -f no-uptodate -f modified
[  M    →] knut-ws (git@github.com:Luzifer/workstation.git » master)