Man page - git-commit-graph(1)
Packages contains this manual
- git-stash(1)
- gitcredentials(7)
- git-write-tree(1)
- git(1)
- git-mergetool--lib(1)
- git-tag(1)
- git-for-each-repo(1)
- git-upload-archive(1)
- git-credential-cache--daemon(1)
- git-count-objects(1)
- git-for-each-ref(1)
- git-merge-tree(1)
- git-fmt-merge-msg(1)
- git-update-ref(1)
- git-read-tree(1)
- git-init-db(1)
- git-restore(1)
- git-checkout-index(1)
- git-upload-pack(1)
- gittutorial-2(7)
- git-fast-export(1)
- git-verify-pack(1)
- git-remote(1)
- git-fsck(1)
- git-mailinfo(1)
- git-rerere(1)
- gitremote-helpers(7)
- git-log(1)
- git-rm(1)
- git-hash-object(1)
- git-fsmonitor--daemon(1)
- git-branch(1)
- git-check-ignore(1)
- git-request-pull(1)
- git-show(1)
- git-clone(1)
- git-init(1)
- gitglossary(7)
- git-index-pack(1)
- gitprotocol-http(5)
- git-mailsplit(1)
- git-patch-id(1)
- git-check-attr(1)
- git-diff-tree(1)
- git-unpack-objects(1)
- git-multi-pack-index(1)
- git-sh-setup(1)
- git-check-mailmap(1)
- git-revert(1)
- git-stripspace(1)
- git-commit-graph(1)
- gitformat-index(5)
- git-credential-store(1)
- gitnamespaces(7)
- gitformat-commit-graph(5)
- git-mv(1)
- git-diff-index(1)
- git-show-branch(1)
- gitrevisions(7)
- gitweb(1)
- git-imap-send(1)
- git-cat-file(1)
- githooks(5)
- git-subtree(1)
- git-merge-one-file(1)
- gitcore-tutorial(7)
- git-mktag(1)
- git-maintenance(1)
- gitprotocol-capabilities(5)
- git-quiltimport(1)
- git-status(1)
- git-help(1)
- gitmailmap(5)
- git-column(1)
- gitcli(7)
- git-fetch(1)
- git-var(1)
- git-prune(1)
- scalar(1)
- git-notes(1)
- git-symbolic-ref(1)
- git-bugreport(1)
- git-cherry-pick(1)
- git-difftool(1)
- gitworkflows(7)
- git-http-push(1)
- git-filter-branch(1)
- git-pack-objects(1)
- git-update-index(1)
- git-diff(1)
- git-credential(1)
- git-clean(1)
- gitprotocol-common(5)
- git-ls-tree(1)
- git-web--browse(1)
- gitcvs-migration(7)
- git-interpret-trailers(1)
- git-http-fetch(1)
- git-prune-packed(1)
- git-verify-commit(1)
- git-update-server-info(1)
- git-archive(1)
- git-rebase(1)
- git-pull(1)
- git-mktree(1)
- git-http-backend(1)
- gitattributes(5)
- git-repack(1)
- gittutorial(7)
- gitformat-signature(5)
- gitpacking(7)
- giteveryday(7)
- git-show-ref(1)
- git-format-patch(1)
- gitprotocol-pack(5)
- git-replay(1)
- git-fast-import(1)
- git-merge-base(1)
- git-merge-file(1)
- git-instaweb(1)
- git-diff-files(1)
- git-receive-pack(1)
- git-remote-fd(1)
- git-rev-list(1)
- git-sh-i18n(1)
- git-send-pack(1)
- gitmodules(5)
- git-range-diff(1)
- git-merge-index(1)
- git-get-tar-commit-id(1)
- git-ls-files(1)
- git-sparse-checkout(1)
- git-mergetool(1)
- git-replace(1)
- git-merge(1)
- gitignore(5)
- git-whatchanged(1)
- gitweb.conf(5)
- git-verify-tag(1)
- git-pack-refs(1)
- git-reset(1)
- gitrepository-layout(5)
- git-commit-tree(1)
- git-pack-redundant(1)
- gitformat-bundle(5)
- git-submodule(1)
- git-reflog(1)
- git-show-index(1)
- git-push(1)
- git-shortlog(1)
- git-gc(1)
- git-worktree(1)
- git-refs(1)
- git-bundle(1)
- git-hook(1)
- git-sh-i18n--envsubst(1)
- gitfaq(7)
- git-commit(1)
- git-check-ref-format(1)
- git-bisect(1)
- git-fsck-objects(1)
- git-daemon(1)
- git-cherry(1)
- git-ls-remote(1)
- git-blame(1)
- git-stage(1)
- git-name-rev(1)
- git-describe(1)
- git-remote-ext(1)
- git-diagnose(1)
- gitformat-pack(5)
- git-add(1)
- git-shell(1)
- git-unpack-file(1)
- git-apply(1)
- git-am(1)
- gitformat-chunk(5)
- git-annotate(1)
- git-checkout(1)
- git-fetch-pack(1)
- gitdiffcore(7)
- git-config(1)
- git-version(1)
- gitsubmodules(7)
- git-grep(1)
- git-credential-cache(1)
- gitprotocol-v2(5)
- git-rev-parse(1)
- git-switch(1)
apt-get install git-man
Manual
GIT-COMMIT-GRAPH
NAMESYNOPSIS
DESCRIPTION
OPTIONS
COMMANDS
EXAMPLES
CONFIGURATION
FILE FORMAT
GIT
NAME
git-commit-graph - Write and verify Git commit-graph files
SYNOPSIS
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 earlier layers, it is advised to use --split=replace . Overrides the commitGraph.maxNewFilters configuration.
With the --split[=<strategy>] option, write the commit-graph as a chain of multiple commit-graph files stored in <dir>/info/commit-graphs . Commit-graph layers are merged based on the strategy and other splitting options. The new commits not already in the commit-graph are added in a new "tip" file. This file is merged with the existing file if the following merge conditions are met:
β’ If --split=no-merge is specified, a merge is never performed, and the remaining options are ignored. --split=replace overwrites the existing chain with a new one. A bare --split defers to the remaining options. (Note that merging a chain of commit graphs replaces the existing chain with a length-1 chain where the first and only incremental holds the entire graph).
β’ If --size-multiple=<X> is not specified, let X equal 2. If the new tip file would have N commits and the previous tip has M commits and X times N is greater than M , instead merge the two files into a single file.
β’ If --max-commits=<M> is specified with M a positive integer, and the new tip file would have more than M commits, then instead merge the new tip with the previous tip.
Finally, if --expire-time=<datetime> is not specified, let datetime be the current time. After writing the split commit-graph, delete all unused commit-graph whose modified times are older than datetime .
verify
Read the commit-graph file and verify its contents against the object database. Used to check for corrupted data.
With the --shallow option, only check the tip commit-graph file in a chain of split commit-graphs.
EXAMPLES
β’ Write a commit-graph file for the packed commits in your local .git directory.
$ git commit-graph write
β’ Write a commit-graph file, extending the current commit-graph file using commits in <pack-index> .
$ echo <pack-index> | git commit-graph write --stdin-packs
β’ Write a commit-graph file containing all reachable commits.
$ git show-ref -s | git commit-graph write --stdin-commits
β’ Write a commit-graph file containing all commits in the current commit-graph file along with those reachable from HEAD .
$ git rev-parse HEAD | git commit-graph write --stdin-commits --append
CONFIGURATION
Everything below this line in this section is selectively included from the git-config (1) documentation. The content is the same as whatβs found there:
commitGraph.generationVersion
Specifies the type of generation number version to use when writing or reading the commit-graph file. If version 1 is specified, then the corrected commit dates will not be written or read. Defaults to 2.
commitGraph.maxNewFilters
Specifies the default value for the --max-new-filters option of git commit-graph write (c.f., git-commit-graph (1)).
commitGraph.readChangedPaths
Deprecated. Equivalent to commitGraph.changedPathsVersion=-1 if true, and commitGraph.changedPathsVersion=0 if false. (If commitGraph.changedPathVersion is also set, commitGraph.changedPathsVersion takes precedence.)
commitGraph.changedPathsVersion
Specifies the version of the changed-path Bloom filters that Git will read and write. May be -1, 0, 1, or 2. Note that values greater than 1 may be incompatible with older versions of Git which do not yet understand those versions. Use caution when operating in a mixed-version environment.
Defaults to -1.
If -1, Git will use the version of the changed-path Bloom filters in the repository, defaulting to 1 if there are none.
If 0, Git will not read any Bloom filters, and will write version 1 Bloom filters when instructed to write.
If 1, Git will only read version 1 Bloom filters, and will write version 1 Bloom filters.
If 2, Git will only read version 2 Bloom filters, and will write version 2 Bloom filters.
See git-commit-graph (1) for more information.
FILE FORMAT
see gitformat-commit-graph (5).
GIT
Part of the git (1) suite