From acfb98de3d9e0df8963c76d7503dd30738beb75b Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 22 Sep 2023 17:07:41 -0700 Subject: Autogenerated HTML docs for v2.42.0-270-gbcb6ca --- MyFirstContribution.html | 2 +- MyFirstObjectWalk.html | 2 +- RelNotes/2.43.0.txt | 14 ++++++++++++++ ReviewingGuidelines.html | 2 +- SubmittingPatches.html | 2 +- ToolsForGit.html | 2 +- everyday.html | 2 +- git-clean.html | 4 ++-- git-clean.txt | 2 +- git-config.html | 4 ++-- git-config.txt | 2 +- git-remote-helpers.html | 2 +- howto/coordinate-embargoed-releases.html | 2 +- howto/keep-canonical-history-correct.html | 4 ++-- howto/maintain-git.html | 4 ++-- howto/new-command.html | 4 ++-- howto/rebase-from-internal-branch.html | 4 ++-- howto/rebuild-from-update-hook.html | 4 ++-- howto/recover-corrupted-blob-object.html | 4 ++-- howto/recover-corrupted-object-harder.html | 4 ++-- howto/revert-a-faulty-merge.html | 4 ++-- howto/revert-branch-rebase.html | 4 ++-- howto/separating-topic-branches.html | 4 ++-- howto/setup-git-server-over-http.html | 4 ++-- howto/update-hook-example.html | 4 ++-- howto/use-git-daemon.html | 4 ++-- howto/using-merge-subtree.html | 4 ++-- howto/using-signed-tag-in-pull-request.html | 4 ++-- technical/api-error-handling.html | 2 +- technical/api-index.html | 2 +- technical/api-merge.html | 2 +- technical/api-parse-options.html | 2 +- technical/api-simple-ipc.html | 2 +- technical/api-trace2.html | 2 +- technical/bitmap-format.html | 2 +- technical/bundle-uri.html | 2 +- technical/hash-function-transition.html | 2 +- technical/long-running-process-protocol.html | 2 +- technical/multi-pack-index.html | 2 +- technical/pack-heuristics.html | 2 +- technical/parallel-checkout.html | 2 +- technical/partial-clone.html | 2 +- technical/racy-git.html | 2 +- technical/scalar.html | 2 +- technical/send-pack-pipeline.html | 2 +- technical/shallow.html | 2 +- technical/trivial-merge.html | 2 +- user-manual.html | 2 +- 48 files changed, 78 insertions(+), 64 deletions(-) diff --git a/MyFirstContribution.html b/MyFirstContribution.html index 3d993f9fe..f334e102d 100644 --- a/MyFirstContribution.html +++ b/MyFirstContribution.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/MyFirstObjectWalk.html b/MyFirstObjectWalk.html index ef1149503..6602ee4a3 100644 --- a/MyFirstObjectWalk.html +++ b/MyFirstObjectWalk.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/RelNotes/2.43.0.txt b/RelNotes/2.43.0.txt index 76deb1a7b..f5b426a9d 100644 --- a/RelNotes/2.43.0.txt +++ b/RelNotes/2.43.0.txt @@ -86,6 +86,9 @@ Performance, Internal Implementation, Development Support etc. * Unused parameters to functions are marked as such, and/or removed, in order to bring us closer to -Wunused-parameter clean. + * The code to keep track of existing packs in the repository while + repacking has been refactored. + Fixes since v2.42 ----------------- @@ -166,6 +169,15 @@ Fixes since v2.42 work. (merge 4333267995 pb/completion-aliases-doc later to maint). + * HTTP Header redaction code has been adjusted for a newer version of + cURL library that shows its traces differently from earlier + versions. + (merge 0763c3a2c4 jk/redact-h2h3-headers-fix later to maint). + + * An error message given by "git send-email" when given a malformed + address did not give correct information, which has been corrected. + (merge 12288cc44e tb/send-email-extract-valid-address-error-message-fix later to maint). + * Other code cleanup, docfix, build fix, etc. (merge fd3ba590d8 ws/git-push-doc-grammofix later to maint). (merge 5f33a843de ds/upload-pack-error-sequence-fix later to maint). @@ -182,3 +194,5 @@ Fixes since v2.42 (merge 078c42531e rs/name-rev-use-opt-hidden-bool later to maint). (merge 63642d58b4 ob/sequencer-remove-dead-code later to maint). (merge 8aae489756 ob/t3404-typofix later to maint). + (merge 58be11432e eg/config-type-path-docfix later to maint). + (merge 563f339d98 ch/clean-docfix later to maint). diff --git a/ReviewingGuidelines.html b/ReviewingGuidelines.html index c60290dd1..63983cfa8 100644 --- a/ReviewingGuidelines.html +++ b/ReviewingGuidelines.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/SubmittingPatches.html b/SubmittingPatches.html index b2edf045e..e60e772fe 100644 --- a/SubmittingPatches.html +++ b/SubmittingPatches.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/ToolsForGit.html b/ToolsForGit.html index 4d0554284..9810efc2e 100644 --- a/ToolsForGit.html +++ b/ToolsForGit.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/everyday.html b/everyday.html index 7da2bce73..80f96f6f7 100644 --- a/everyday.html +++ b/everyday.html @@ -735,7 +735,7 @@ asciidoc.install();
diff --git a/git-clean.html b/git-clean.html index fb95d958d..50fba18e7 100644 --- a/git-clean.html +++ b/git-clean.html @@ -942,7 +942,7 @@ quit

- This lets you quit without do cleaning. + This lets you quit without doing any cleaning.

@@ -992,7 +992,7 @@ clean.requireForce diff --git a/git-clean.txt b/git-clean.txt index 160d08b86..5e1a3d514 100644 --- a/git-clean.txt +++ b/git-clean.txt @@ -127,7 +127,7 @@ ask each:: quit:: - This lets you quit without do cleaning. + This lets you quit without doing any cleaning. help:: diff --git a/git-config.html b/git-config.html index 47eaca95d..9ee2a07fe 100644 --- a/git-config.html +++ b/git-config.html @@ -1072,7 +1072,7 @@ available files.

  • -path: canonicalize by adding a leading ~ to the value of $HOME and +path: canonicalize by expanding a leading ~ to the value of $HOME and ~user to the home directory for the specified user. This specifier has no effect when setting the value (but you can use git config section.variable ~/ from the command line to let your shell do the expansion.) @@ -11786,7 +11786,7 @@ looks like

  • diff --git a/git-config.txt b/git-config.txt index 7a2bcb2f6..b1caac887 100644 --- a/git-config.txt +++ b/git-config.txt @@ -201,7 +201,7 @@ Valid ``'s include: 1073741824 upon input. - 'bool-or-int': canonicalize according to either 'bool' or 'int', as described above. -- 'path': canonicalize by adding a leading `~` to the value of `$HOME` and +- 'path': canonicalize by expanding a leading `~` to the value of `$HOME` and `~user` to the home directory for the specified user. This specifier has no effect when setting the value (but you can use `git config section.variable ~/` from the command line to let your shell do the expansion.) diff --git a/git-remote-helpers.html b/git-remote-helpers.html index 6f8413125..96d0940b5 100644 --- a/git-remote-helpers.html +++ b/git-remote-helpers.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html index b47ac0503..7aaadb0f7 100644 --- a/howto/coordinate-embargoed-releases.html +++ b/howto/coordinate-embargoed-releases.html @@ -1038,7 +1038,7 @@ Thanks, diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html index 48ec52e65..684d6af56 100644 --- a/howto/keep-canonical-history-correct.html +++ b/howto/keep-canonical-history-correct.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -939,7 +939,7 @@ tip of your master again and redo the two merges:

    diff --git a/howto/maintain-git.html b/howto/maintain-git.html index ff2d6482f..25585e74d 100644 --- a/howto/maintain-git.html +++ b/howto/maintain-git.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -1479,7 +1479,7 @@ $ git update-ref -d $mf/ai/topic diff --git a/howto/new-command.html b/howto/new-command.html index d927e8586..4acb4be0c 100644 --- a/howto/new-command.html +++ b/howto/new-command.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -864,7 +864,7 @@ letter [PATCH 0/n]. diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html index bb76a03b2..09185f712 100644 --- a/howto/rebase-from-internal-branch.html +++ b/howto/rebase-from-internal-branch.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -896,7 +896,7 @@ the #1' commit.

    diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html index e66680d42..1f89783ae 100644 --- a/howto/rebuild-from-update-hook.html +++ b/howto/rebuild-from-update-hook.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -848,7 +848,7 @@ This is still crude and does not protect against simultaneous diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html index 3ecdce0f3..adfe417e9 100644 --- a/howto/recover-corrupted-blob-object.html +++ b/howto/recover-corrupted-blob-object.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -881,7 +881,7 @@ thing.

    diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html index 7fd77d8e7..188046274 100644 --- a/howto/recover-corrupted-object-harder.html +++ b/howto/recover-corrupted-object-harder.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -1190,7 +1190,7 @@ int main(int argc, char **argv) diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html index df6f0064d..9dc0e53f1 100644 --- a/howto/revert-a-faulty-merge.html +++ b/howto/revert-a-faulty-merge.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -1026,7 +1026,7 @@ P---o---o---M---x---x---W---x---M2 diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html index 396080e2b..ab2bf5ec3 100644 --- a/howto/revert-branch-rebase.html +++ b/howto/revert-branch-rebase.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -908,7 +908,7 @@ Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html index 859901e13..c80db199f 100644 --- a/howto/separating-topic-branches.html +++ b/howto/separating-topic-branches.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -842,7 +842,7 @@ o---o"master" diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html index 47a06f0f4..f130668e7 100644 --- a/howto/setup-git-server-over-http.html +++ b/howto/setup-git-server-over-http.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -1072,7 +1072,7 @@ help diagnosing the problem, but removes security checks.

    diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html index 94c645506..ff697407c 100644 --- a/howto/update-hook-example.html +++ b/howto/update-hook-example.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -931,7 +931,7 @@ that JC can make non-fast-forward pushes on it.

    diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html index 47677eb47..b3ebc0528 100644 --- a/howto/use-git-daemon.html +++ b/howto/use-git-daemon.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -792,7 +792,7 @@ a good practice to put the paths after a "--" separator.

    diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html index 331ff3767..7c7d1b87d 100644 --- a/howto/using-merge-subtree.html +++ b/howto/using-merge-subtree.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -849,7 +849,7 @@ Please note that if the other project merges from you, then it will diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html index 3a578c3fb..0f9b6333a 100644 --- a/howto/using-signed-tag-in-pull-request.html +++ b/howto/using-signed-tag-in-pull-request.html @@ -735,7 +735,7 @@ asciidoc.install();
    @@ -953,7 +953,7 @@ as part of the merge commit.

    diff --git a/technical/api-error-handling.html b/technical/api-error-handling.html index 02ced4e20..184a92d1f 100644 --- a/technical/api-error-handling.html +++ b/technical/api-error-handling.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/api-index.html b/technical/api-index.html index 5e845a35c..d13d0ddf7 100644 --- a/technical/api-index.html +++ b/technical/api-index.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/api-merge.html b/technical/api-merge.html index a7422a981..155b76d37 100644 --- a/technical/api-merge.html +++ b/technical/api-merge.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/api-parse-options.html b/technical/api-parse-options.html index cb034fd79..cd83adc58 100644 --- a/technical/api-parse-options.html +++ b/technical/api-parse-options.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/api-simple-ipc.html b/technical/api-simple-ipc.html index 79286d682..191c9db3b 100644 --- a/technical/api-simple-ipc.html +++ b/technical/api-simple-ipc.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/api-trace2.html b/technical/api-trace2.html index ecf0c459e..12bdbde5a 100644 --- a/technical/api-trace2.html +++ b/technical/api-trace2.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/bitmap-format.html b/technical/bitmap-format.html index f294c1997..2c5348108 100644 --- a/technical/bitmap-format.html +++ b/technical/bitmap-format.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/bundle-uri.html b/technical/bundle-uri.html index b161009bf..f736d9835 100644 --- a/technical/bundle-uri.html +++ b/technical/bundle-uri.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/hash-function-transition.html b/technical/hash-function-transition.html index 44239ba6e..bb9dc4135 100644 --- a/technical/hash-function-transition.html +++ b/technical/hash-function-transition.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/long-running-process-protocol.html b/technical/long-running-process-protocol.html index 537506af8..1d9509fd6 100644 --- a/technical/long-running-process-protocol.html +++ b/technical/long-running-process-protocol.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/multi-pack-index.html b/technical/multi-pack-index.html index 94fbadf64..0369b9dd4 100644 --- a/technical/multi-pack-index.html +++ b/technical/multi-pack-index.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/pack-heuristics.html b/technical/pack-heuristics.html index 8ef518a4e..01cb382ca 100644 --- a/technical/pack-heuristics.html +++ b/technical/pack-heuristics.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/parallel-checkout.html b/technical/parallel-checkout.html index 39cb61bb2..626f5f564 100644 --- a/technical/parallel-checkout.html +++ b/technical/parallel-checkout.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/partial-clone.html b/technical/partial-clone.html index 002084269..00274452d 100644 --- a/technical/partial-clone.html +++ b/technical/partial-clone.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/racy-git.html b/technical/racy-git.html index 1f1003e86..2bbce2f94 100644 --- a/technical/racy-git.html +++ b/technical/racy-git.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/scalar.html b/technical/scalar.html index ffda633d9..56d29b1dd 100644 --- a/technical/scalar.html +++ b/technical/scalar.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/send-pack-pipeline.html b/technical/send-pack-pipeline.html index 49e8f625f..54b7196bd 100644 --- a/technical/send-pack-pipeline.html +++ b/technical/send-pack-pipeline.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/shallow.html b/technical/shallow.html index 905123784..5a78445ea 100644 --- a/technical/shallow.html +++ b/technical/shallow.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/technical/trivial-merge.html b/technical/trivial-merge.html index d0bf05e42..6945d2104 100644 --- a/technical/trivial-merge.html +++ b/technical/trivial-merge.html @@ -735,7 +735,7 @@ asciidoc.install();
    diff --git a/user-manual.html b/user-manual.html index b536caae6..06a6f0250 100644 --- a/user-manual.html +++ b/user-manual.html @@ -1,5 +1,5 @@ -Git User Manual

    Git User Manual

    Revision History
    2023-09-20

    Table of Contents

    Introduction
    1. Repositories and Branches
    How to get a Git repository
    How to check out a different version of a project
    Understanding History: Commits
    Understanding history: commits, parents, and reachability
    Understanding history: History diagrams
    Understanding history: What is a branch?
    Manipulating branches
    Examining an old version without creating a new branch
    Examining branches from a remote repository
    Naming branches, tags, and other references
    Updating a repository with git fetch
    Fetching branches from other repositories
    2. Exploring Git history
    How to use bisect to find a regression
    Naming commits
    Creating tags
    Browsing revisions
    Generating diffs
    Viewing old file versions
    Examples
    Counting the number of commits on a branch
    Check whether two branches point at the same history
    Find first tagged version including a given fix
    Showing commits unique to a given branch
    Creating a changelog and tarball for a software release
    Finding commits referencing a file with given content
    3. Developing with Git
    Telling Git your name
    Creating a new repository
    How to make a commit
    Creating good commit messages
    Ignoring files
    How to merge
    Resolving a merge
    Getting conflict-resolution help during a merge
    Undoing a merge
    Fast-forward merges
    Fixing mistakes
    Fixing a mistake with a new commit
    Fixing a mistake by rewriting history
    Checking out an old version of a file
    Temporarily setting aside work in progress
    Ensuring good performance
    Ensuring reliability
    Checking the repository for corruption
    Recovering lost changes
    4. Sharing development with others
    Getting updates with git pull
    Submitting patches to a project
    Importing patches to a project
    Public Git repositories
    Setting up a public repository
    Exporting a Git repository via the Git protocol
    Exporting a git repository via HTTP
    Pushing changes to a public repository
    What to do when a push fails
    Setting up a shared repository
    Allowing web browsing of a repository
    How to get a Git repository with minimal history
    Examples
    Maintaining topic branches for a Linux subsystem maintainer
    5. Rewriting history and maintaining patch series
    Creating the perfect patch series
    Keeping a patch series up to date using git rebase
    Rewriting a single commit
    Reordering or selecting from a patch series
    Using interactive rebases
    Other tools
    Problems with rewriting history
    Why bisecting merge commits can be harder than bisecting linear history
    6. Advanced branch management
    Fetching individual branches
    git fetch and fast-forwards
    Forcing git fetch to do non-fast-forward updates
    Configuring remote-tracking branches
    7. Git concepts
    The Object Database
    Commit Object
    Tree Object
    Blob Object
    Trust
    Tag Object
    How Git stores objects efficiently: pack files
    Dangling objects
    Recovering from repository corruption
    The index
    8. Submodules
    Pitfalls with submodules
    9. Low-level Git operations
    Object access and manipulation
    The Workflow
    working directory → index
    index → object database
    object database → index
    index → working directory
    Tying it all together
    Examining the data
    Merging multiple trees
    Merging multiple trees, continued
    10. Hacking Git
    Object storage format
    A birds-eye view of Git’s source code
    11. Git Glossary
    Git explained
    A. Git Quick Reference
    Creating a new repository
    Managing branches
    Exploring history
    Making changes
    Merging
    Sharing your changes
    Repository maintenance
    B. Notes and todo list for this manual
    Todo list

    Introduction

    Git is a fast distributed revision control system.

    This manual is designed to be readable by someone with basic UNIX +Git User Manual

    Git User Manual

    Revision History
    2023-09-22

    Table of Contents

    Introduction
    1. Repositories and Branches
    How to get a Git repository
    How to check out a different version of a project
    Understanding History: Commits
    Understanding history: commits, parents, and reachability
    Understanding history: History diagrams
    Understanding history: What is a branch?
    Manipulating branches
    Examining an old version without creating a new branch
    Examining branches from a remote repository
    Naming branches, tags, and other references
    Updating a repository with git fetch
    Fetching branches from other repositories
    2. Exploring Git history
    How to use bisect to find a regression
    Naming commits
    Creating tags
    Browsing revisions
    Generating diffs
    Viewing old file versions
    Examples
    Counting the number of commits on a branch
    Check whether two branches point at the same history
    Find first tagged version including a given fix
    Showing commits unique to a given branch
    Creating a changelog and tarball for a software release
    Finding commits referencing a file with given content
    3. Developing with Git
    Telling Git your name
    Creating a new repository
    How to make a commit
    Creating good commit messages
    Ignoring files
    How to merge
    Resolving a merge
    Getting conflict-resolution help during a merge
    Undoing a merge
    Fast-forward merges
    Fixing mistakes
    Fixing a mistake with a new commit
    Fixing a mistake by rewriting history
    Checking out an old version of a file
    Temporarily setting aside work in progress
    Ensuring good performance
    Ensuring reliability
    Checking the repository for corruption
    Recovering lost changes
    4. Sharing development with others
    Getting updates with git pull
    Submitting patches to a project
    Importing patches to a project
    Public Git repositories
    Setting up a public repository
    Exporting a Git repository via the Git protocol
    Exporting a git repository via HTTP
    Pushing changes to a public repository
    What to do when a push fails
    Setting up a shared repository
    Allowing web browsing of a repository
    How to get a Git repository with minimal history
    Examples
    Maintaining topic branches for a Linux subsystem maintainer
    5. Rewriting history and maintaining patch series
    Creating the perfect patch series
    Keeping a patch series up to date using git rebase
    Rewriting a single commit
    Reordering or selecting from a patch series
    Using interactive rebases
    Other tools
    Problems with rewriting history
    Why bisecting merge commits can be harder than bisecting linear history
    6. Advanced branch management
    Fetching individual branches
    git fetch and fast-forwards
    Forcing git fetch to do non-fast-forward updates
    Configuring remote-tracking branches
    7. Git concepts
    The Object Database
    Commit Object
    Tree Object
    Blob Object
    Trust
    Tag Object
    How Git stores objects efficiently: pack files
    Dangling objects
    Recovering from repository corruption
    The index
    8. Submodules
    Pitfalls with submodules
    9. Low-level Git operations
    Object access and manipulation
    The Workflow
    working directory → index
    index → object database
    object database → index
    index → working directory
    Tying it all together
    Examining the data
    Merging multiple trees
    Merging multiple trees, continued
    10. Hacking Git
    Object storage format
    A birds-eye view of Git’s source code
    11. Git Glossary
    Git explained
    A. Git Quick Reference
    Creating a new repository
    Managing branches
    Exploring history
    Making changes
    Merging
    Sharing your changes
    Repository maintenance
    B. Notes and todo list for this manual
    Todo list

    Introduction

    Git is a fast distributed revision control system.

    This manual is designed to be readable by someone with basic UNIX command-line skills, but no previous knowledge of Git.

    Chapter 1, Repositories and Branches and Chapter 2, Exploring Git history explain how to fetch and study a project using git—read these chapters to learn how to build and test a particular version of a software project, search for -- cgit 1.2.3-korg