|
| 1 | +git-maintenance(1) |
| 2 | +================== |
| 3 | + |
| 4 | +NAME |
| 5 | +---- |
| 6 | +git-maintenance - Run tasks to optimize Git repository data |
| 7 | + |
| 8 | + |
| 9 | +SYNOPSIS |
| 10 | +-------- |
| 11 | +[verse] |
| 12 | +'git maintenance' run [<options>] |
| 13 | + |
| 14 | + |
| 15 | +DESCRIPTION |
| 16 | +----------- |
| 17 | +Run tasks to optimize Git repository data, speeding up other Git commands |
| 18 | +and reducing storage requirements for the repository. |
| 19 | + |
| 20 | +Git commands that add repository data, such as `git add` or `git fetch`, |
| 21 | +are optimized for a responsive user experience. These commands do not take |
| 22 | +time to optimize the Git data, since such optimizations scale with the full |
| 23 | +size of the repository while these user commands each perform a relatively |
| 24 | +small action. |
| 25 | + |
| 26 | +The `git maintenance` command provides flexibility for how to optimize the |
| 27 | +Git repository. |
| 28 | + |
| 29 | +SUBCOMMANDS |
| 30 | +----------- |
| 31 | + |
| 32 | +run:: |
| 33 | + Run one or more maintenance tasks. If one or more `--task` options |
| 34 | + are specified, then those tasks are run in that order. Otherwise, |
| 35 | + the tasks are determined by which `maintenance.<task>.enabled` |
| 36 | + config options are true. By default, only `maintenance.gc.enabled` |
| 37 | + is true. |
| 38 | + |
| 39 | +TASKS |
| 40 | +----- |
| 41 | + |
| 42 | +commit-graph:: |
| 43 | + The `commit-graph` job updates the `commit-graph` files incrementally, |
| 44 | + then verifies that the written data is correct. The incremental |
| 45 | + write is safe to run alongside concurrent Git processes since it |
| 46 | + will not expire `.graph` files that were in the previous |
| 47 | + `commit-graph-chain` file. They will be deleted by a later run based |
| 48 | + on the expiration delay. |
| 49 | + |
| 50 | +gc:: |
| 51 | + Clean up unnecessary files and optimize the local repository. "GC" |
| 52 | + stands for "garbage collection," but this task performs many |
| 53 | + smaller tasks. This task can be expensive for large repositories, |
| 54 | + as it repacks all Git objects into a single pack-file. It can also |
| 55 | + be disruptive in some situations, as it deletes stale data. See |
| 56 | + linkgit:git-gc[1] for more details on garbage collection in Git. |
| 57 | + |
| 58 | +OPTIONS |
| 59 | +------- |
| 60 | +--auto:: |
| 61 | + When combined with the `run` subcommand, run maintenance tasks |
| 62 | + only if certain thresholds are met. For example, the `gc` task |
| 63 | + runs when the number of loose objects exceeds the number stored |
| 64 | + in the `gc.auto` config setting, or when the number of pack-files |
| 65 | + exceeds the `gc.autoPackLimit` config setting. |
| 66 | + |
| 67 | +--quiet:: |
| 68 | + Do not report progress or other information over `stderr`. |
| 69 | + |
| 70 | +--task=<task>:: |
| 71 | + If this option is specified one or more times, then only run the |
| 72 | + specified tasks in the specified order. If no `--task=<task>` |
| 73 | + arguments are specified, then only the tasks with |
| 74 | + `maintenance.<task>.enabled` configured as `true` are considered. |
| 75 | + See the 'TASKS' section for the list of accepted `<task>` values. |
| 76 | + |
| 77 | +GIT |
| 78 | +--- |
| 79 | +Part of the linkgit:git[1] suite |
0 commit comments