Skip to content

Commit 9ff716e

Browse files
committed
Add commands
1 parent 14d46c8 commit 9ff716e

3 files changed

Lines changed: 219 additions & 0 deletions

File tree

assets/commands/gita.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# TAGLINE
2+
3+
Manage multiple Git repositories side by side
4+
5+
# TLDR
6+
7+
Display **status of all registered** repositories
8+
9+
```gita ll```
10+
11+
**Register repositories** to be tracked
12+
13+
```gita add [path/to/repo1] [path/to/repo2]```
14+
15+
**Recursively discover and add** all repos under a directory
16+
17+
```gita add -a [path/to/parent]```
18+
19+
**Run a git command** across all registered repos
20+
21+
```gita fetch```
22+
23+
Run an **arbitrary git command** across specific repos
24+
25+
```gita super [repo1] [repo2] -c "git [command]"```
26+
27+
Run a **shell command** across all repos
28+
29+
```gita shell -c "[command]"```
30+
31+
**List** all registered repository names
32+
33+
```gita ls```
34+
35+
**Remove** a repository from tracking
36+
37+
```gita rm [repo_name]```
38+
39+
# SYNOPSIS
40+
41+
**gita** [_subcommand_] [_options_] [_repos_]
42+
43+
# PARAMETERS
44+
45+
**add** _path(s)_
46+
> Register repositories to track. Use **-a** to recursively discover repos under a directory, **-b** for bare repos.
47+
48+
**rm** _repo(s)_
49+
> Unregister repositories from tracking.
50+
51+
**ls**
52+
> List names of all registered repositories.
53+
54+
**ll**
55+
> Display detailed status of all repos including branch, sync state, and modifications.
56+
57+
**fetch**
58+
> Run git fetch across all registered repos.
59+
60+
**pull**
61+
> Run git pull across all registered repos.
62+
63+
**super** [_repos_] **-c** _"git command"_
64+
> Delegate any arbitrary git command to specified repos (or all if none specified).
65+
66+
**shell** [_repos_] **-c** _"command"_
67+
> Run any shell command in each repo's directory.
68+
69+
**freeze**
70+
> Export repository paths and URLs for backup or sharing.
71+
72+
**clone** _url_
73+
> Clone a repository and register it.
74+
75+
**group add** _repos_ **-n** _name_
76+
> Create a named group of repositories.
77+
78+
**group ll**
79+
> List all groups and their contents.
80+
81+
**group rm** _name_
82+
> Delete a named group.
83+
84+
**context** _group_
85+
> Limit subsequent commands to a specific group. Use **none** to clear.
86+
87+
**info**
88+
> Configure which information items are displayed in **ll** output.
89+
90+
**color**
91+
> Manage color schemes for branch status display.
92+
93+
**flags set** _repo_ _flags_
94+
> Set custom git flags for a specific repository.
95+
96+
# DESCRIPTION
97+
98+
**gita** is a command-line tool for managing multiple Git repositories simultaneously. It provides a unified view of repository statuses and allows batch execution of git commands across all tracked repos from any working directory, without needing to cd into each one individually.
99+
100+
Repositories are registered with **gita add** and their paths are stored in **$XDG_CONFIG_HOME/gita/repos.csv**. Once registered, **gita ll** displays a color-coded summary of each repo's branch, sync state (ahead/behind remote), and working tree modifications. Git commands like **fetch** and **pull** can be delegated to all repos at once, and arbitrary git or shell commands can be run via **super** and **shell** subcommands.
101+
102+
Repos can be organized into named **groups** and scoped with **context** to limit operations to a subset. Configuration files for groups, colors, display info, and custom commands are stored in **$XDG_CONFIG_HOME/gita/**.
103+
104+
# CAVEATS
105+
106+
Requires **Python 3.6+**. Batch operations run asynchronously across repos, but commands requiring user interaction (such as **log**, **difftool**, **mergetool**) run synchronously to avoid garbled output. By default only **fetch** and **pull** are allowed to run across all repos without specifying targets; other commands require explicit repo names unless custom configuration overrides this. On Windows, ANSI color output must be enabled manually.
107+
108+
# HISTORY
109+
110+
**gita** was created by **nosarthur** and first released in **January 2018**. Written in **Python**, it is distributed via PyPI and installable with pip, pipx, or uv. The name is a play on "git" with an added "a" suggesting management of multiple repos. The project is MIT-licensed and actively maintained.
111+
112+
# SEE ALSO
113+
114+
[git](/man/git)(1), [mr](/man/mr)(1), [ghq](/man/ghq)(1)

assets/commands/index.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2722,6 +2722,7 @@ git-who.md
27222722
git-worktree.md
27232723
git-write-tree.md
27242724
git.md
2725+
gita.md
27252726
gitbook.md
27262727
gitea.md
27272728
github-copilot-cli.md
@@ -6141,6 +6142,7 @@ qemu-system-riscv64.md
61416142
qemu-system-x86_64.md
61426143
qemu.md
61436144
qgis.md
6145+
qgis_process.md
61446146
qjoypad.md
61456147
qm-agent.md
61466148
qm-cleanup.md

assets/commands/qgis_process.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# TAGLINE
2+
3+
Run QGIS Processing algorithms from the command line
4+
5+
# TLDR
6+
7+
**List all available** processing algorithms
8+
9+
```qgis_process list```
10+
11+
**Show help** for a specific algorithm
12+
13+
```qgis_process help [algorithm_id]```
14+
15+
**Run a buffer** operation on a vector layer
16+
17+
```qgis_process run native:buffer -- INPUT=[input.shp] DISTANCE=[10] OUTPUT=[buffered.shp]```
18+
19+
**Run an algorithm** with JSON output
20+
21+
```qgis_process run [algorithm_id] --json -- [PARAM]=[VALUE]```
22+
23+
**List available plugins** and their status
24+
25+
```qgis_process plugins```
26+
27+
**Enable a plugin** provider (e.g. GRASS)
28+
29+
```qgis_process plugins enable [grassprovider]```
30+
31+
# SYNOPSIS
32+
33+
**qgis_process** [_--json_] [_--verbose_] [_--no-python_] [_--skip-loading-plugins_] \<_command_\> [_algorithm_id_] [**--** _PARAM=VALUE ..._]
34+
35+
# PARAMETERS
36+
37+
**list**
38+
> List all available processing algorithms, grouped by provider.
39+
40+
**help** _algorithm_id_
41+
> Display help and parameter descriptions for a specific algorithm.
42+
43+
**run** _algorithm_id_ [**--** _PARAM=VALUE ..._]
44+
> Execute an algorithm with the given parameters. Parameters follow **--** using **KEY=VALUE** syntax. A trailing **-** reads parameters from stdin as JSON.
45+
46+
**plugins**
47+
> List available and active processing provider plugins.
48+
49+
**plugins enable** _name_
50+
> Activate a specific plugin provider.
51+
52+
**plugins disable** _name_
53+
> Deactivate a specific plugin provider.
54+
55+
**--json**
56+
> Format output as JSON.
57+
58+
**--verbose**
59+
> Enable verbose logging output.
60+
61+
**--no-python**
62+
> Disable Python support for faster startup.
63+
64+
**--skip-loading-plugins**
65+
> Skip loading plugins for faster startup.
66+
67+
**-h**, **--help**
68+
> Display help information.
69+
70+
**-v**, **--version**
71+
> Show version details.
72+
73+
# DESCRIPTION
74+
75+
**qgis_process** is a standalone command-line tool for running QGIS Processing algorithms without launching the QGIS GUI. It provides access to the full Processing framework including native QGIS algorithms, GDAL, GRASS GIS, SAGA, and any third-party plugin algorithms, all from the terminal.
76+
77+
This enables batch processing of geospatial data via shell scripts, automation with cron jobs, integration with external tools and pipelines, and headless server usage for geoprocessing workflows. Algorithm parameters are passed after a **--** separator using **PARAM=VALUE** syntax, and repeated parameters create ordered lists. Special parameters include **--ELLIPSOID**, **--PROJECT_PATH**, **--distance_units**, and **--area_units** for controlling coordinate reference and measurement settings.
78+
79+
The tool ships with QGIS 3.14 and later as part of the standard installation.
80+
81+
# CONFIGURATION
82+
83+
On headless servers without a display, set the environment variable before running:
84+
85+
```export QT_QPA_PLATFORM=offscreen```
86+
87+
Plugin providers like GRASS or SAGA may need to be explicitly enabled on fresh installations where the QGIS GUI has never been launched:
88+
89+
```qgis_process plugins enable grassprovider```
90+
91+
Only plugins with **hasProcessingProvider=yes** in their metadata.txt are recognized.
92+
93+
# CAVEATS
94+
95+
On headless systems, **QT_QPA_PLATFORM=offscreen** must be set or the tool will fail to start. Processing provider plugins (GRASS, SAGA) are not loaded automatically on systems where the QGIS GUI has never been launched and must be enabled manually. Loading Python and plugins adds startup overhead; use **--no-python** and **--skip-loading-plugins** when those features are not needed. This tool exposes only the Processing framework and does not replace the full QGIS desktop application.
96+
97+
# HISTORY
98+
99+
**qgis_process** was proposed in **February 2019** by **Nyall Dawson** as QGIS Enhancement Proposal #140, originally named **qgis_transform** before being renamed after community discussion. Development was **sponsored by the Swedish QGIS User Group**. The pull request was merged in **April 2020** and the tool first shipped with **QGIS 3.14 "Pi"** in **June 2020**. It has been continuously enhanced in subsequent releases with features like plugin management and JSON I/O.
100+
101+
# SEE ALSO
102+
103+
[qgis](/man/qgis)(1), [gdalinfo](/man/gdalinfo)(1), [ogr2ogr](/man/ogr2ogr)(1), [ogrinfo](/man/ogrinfo)(1), [gdalwarp](/man/gdalwarp)(1), [gdal_translate](/man/gdal_translate)(1)

0 commit comments

Comments
 (0)