Home Explore Blog CI



git

1st chunk of `Documentation/git-commit-graph.adoc`
c708fd9d3e592f2611dd714e6072e0c3ed04ce812c41f5d10000000100000ba2
git-commit-graph(1)
===================

NAME
----
git-commit-graph - Write and verify Git commit-graph files


SYNOPSIS
--------
[verse]
'git commit-graph verify' [--object-dir <dir>] [--shallow] [--[no-]progress]
'git commit-graph write' [--object-dir <dir>] [--append]
			[--split[=<strategy>]] [--reachable | --stdin-packs | --stdin-commits]
			[--changed-paths] [--[no-]max-new-filters <n>] [--[no-]progress]
			<split-options>


DESCRIPTION
-----------

Manage the serialized commit-graph file.


OPTIONS
-------
--object-dir::
	Use given directory for the location of packfiles and commit-graph
	file. This parameter exists to specify the location of an alternate
	that only has the objects directory, not a full `.git` directory. The
	commit-graph file is expected to be in the `<dir>/info` directory and
	the packfiles are expected to be in `<dir>/pack`. If the directory
	could not be made into an absolute path, or does not match any known
	object directory, `git commit-graph ...` will exit with non-zero
	status.

--[no-]progress::
	Turn progress on/off explicitly. If neither is specified, progress is
	shown if standard error is connected to a terminal.

COMMANDS
--------
'write'::

Write a commit-graph file based on the commits found in packfiles. If
the config option `core.commitGraph` is disabled, then this command will
output a warning, then return success without writing a commit-graph file.
+
With the `--stdin-packs` option, generate the new commit graph by
walking objects only in the specified pack-indexes. (Cannot be combined
with `--stdin-commits` or `--reachable`.)
+
With the `--stdin-commits` option, generate the new commit graph by
walking commits starting at the commits specified in stdin as a list
of OIDs in hex, one OID per line. OIDs that resolve to non-commits
(either directly, or by peeling tags) are silently ignored. OIDs that
are malformed, or do not exist generate an error. (Cannot be combined
with `--stdin-packs` or `--reachable`.)
+
With the `--reachable` option, generate the new commit graph by walking
commits starting at all refs. (Cannot be combined with `--stdin-commits`
or `--stdin-packs`.)
+
With the `--append` option, include all commits that are present in the
existing commit-graph file.
+
With the `--changed-paths` option, compute and write information about the
paths changed between a commit and its first parent. This operation can
take a while on large repositories. It provides significant performance gains
for getting history of a directory or a file with `git log -- <path>`. If
this option is given, future commit-graph writes will automatically assume
that this option was intended. Use `--no-changed-paths` to stop storing this
data.
+
With the `--max-new-filters=<n>` option, generate at most `n` new Bloom
filters (if `--changed-paths` is specified). If `n` is `-1`, no limit is
enforced. Only commits present in the new layer count against this
limit. To retroactively compute Bloom filters over

Title: Git Commit Graph Command
Summary
The git-commit-graph command is used to manage the serialized commit-graph file, including writing and verifying the file, with various options to customize its behavior and performance, such as specifying object directories, enabling or disabling progress displays, and generating commit graphs based on different criteria, including reachable commits, stdin packs, and stdin commits, with additional features like computing changed paths and storing Bloom filters for improved performance.