Simple, fast, recursive scan for all git repos. Async
git fetch && git status
git-rstatus is a quality-of-life tool to quickly see that status of numerous
projects from the terminal.
NOTE:
git-rstatusis a single binary which has zero-dependencies (does not require .net or any other libs)
For a feature-rich TUI for git check out lazygit
# find all git projects and display `status`
# will recursively search user user ~ and /mnt/my_git_repos
git-rstatus ~ /mnt/my_git_repos
# real-world example
# (1) don't search `tmux` or `archive` folders
# (2) don't call `git fetch` on `linux` folder
# (3) `git pull` before `git status`
# (4) display absolute paths
# (5) recursive search in `~/repo` and `~/scripts/`
git-rstatus --exclude tmux,archive --no-fetch linux --pull --abs ~/repo ~/scripts
# real-world workflow: create a script with all args, and add it to the $PATH
# ───────┬────────────────────────────────────────────────────────────────────────────────────
# │ File: /home/guy/scripts/git-rstatus-update.sh
# ───────┼────────────────────────────────────────────────────────────────────────────────────
# 1 │ #!/bin/sh
# 2 │ git-rstatus --exclude tmux,archive --no-fetch linux --pull ~/repo ~/scripts --abs
# ───────┴────────────────────────────────────────────────────────────────────────────────────
git-rstatus-update.sh- Terminal Rendering
- Dynamic rendering for table
- 16-color support
- Render a braile-style spinner on global progress line
- Detect non-interactive then drop colors and dynamic rendering
- Git commands
-
git fetch -
git pullonly if behind and not dirty -
git remoteicons for github, etc
-
- Export to json
- Async scan phase
- Create a detailed markdown report will all git output
- Open report in browser?
-
--exclude path,path,path -
--helptext and man-style doc file - Support shell command completion
- Cache previous git dirs from previous run (with background rescan)
- Get CLI stable and clean
- CLI integration with
fzf - TUI version for added Quality-Of-Life features
- Scrollable (Up, Down, PgUp, PgDown, Home, End)
- Searchable
fzfalgo lib? - Flyout details
- Pull on demand
- Jump - shell integration jump to folder
- Jump to remote GitHub / GitLab
- Open - Open folder in app (
vscode,vim,rider, etc)
- Manual Publish
- Publish Linux release on GitHub
- Publish windows release on GitHub
- Publish to arch
AUR - Publish to windows
scooppackage manager
- Automatic Publish process
git-rstatus: Fast recursive git status (with fetch and pull)
version: 0.4.2
project: https://github.com/guylangston/git-rstatus
git-rstatus -switch --param path1 path2 path3
--no-fetch-all # dont `git fetch` before `git status`
--no-fetch path,path # same as above, but only on matching path
--exclude path,path # dont process repos containing these strings
-p, --pull # pull (if status is not dirty)
-a, --abs # use absolute paths
-v, --version # version information
-s, --scan-only # just scan for all git folders and display
--depth=number # don't recurse deeper than `number` (default=8)
--log # create log file (in $PWD)
--json # export to json (no other ouptut)
(*) -switch (single char) can be combined, for example -ap will pull and abs paths
