Search notes:

TODO

alternate object database

Via the alternates mechansism, a repository can inherit part of its object database from another object database, which is called an «alternate»

chain

A list of objects, where each object in the list contains a reference to its successor (for example, the successor of a commit could be one of its parents).

checkout

The action of updating all or part of the working tree with a tree object or blob from the object database, and updating the index and HEAD if the whole working tree has been pointed at a new branch.

cherry picking

Extract the change introduced by an existing commit and to record it based on the tip of the current branch as new commit.

commit-ish / commitish

A commit object or object that can be recursively dereferenced to a commit object.
The following are all commit-ishes: commit object, tab object that points to a commit object, a tag object that points to a tag object that points to a commit object etc.

core Git

Fundamental data structures and utilities of Git. Exposes only limited source code management tools.
See also: git commands

dangling object

An unreachable object which is not reachable even from other unreachable objects. A dangling object has no reference to it from any reference or object in the repository.

evil merge

An evil merge is a merge that introduces changes that do not appear in any parent.

fast-forward

A fast-forward is a special type of merge where you have a revision and you are merging another branch's changes that happen to be a descendant of hat you hae. In such cases, you do not make a new merge commit but instead just jupdate to this revision.
This will happen frequently on a remote-tracking branch of a remote repository.

pickaxe

The term pickaxe refers to an option to the diffcore routines that help select changes that add or delete a given text string. With the --pickaxe-all option, it can be used to view the full changeset that introduced or removed, say, a particular line of text. (see git diff).

per-worktree ref

Refs that are per-worktree, rather than global. This is presently only HEAD and any refs that start with refs/bisect, but ight later include other unusual refs.

pseudoref

Pseudorefs are a class of files under .git which behave like refs for the purpose of rev-parse, but which are treated specially by git. Pseudorefs both have names that are all-caps, and always start with a line consisting of a SHA 1 followed by whitespace. So, HEAD is not a pseudoref because it is sometimes a symbolic ref. They might optionally contain some additional daa. MERGE_HEAD and CHERRY_PICK_HEAD are examples. Unlike per-worktree refs, these files cannot be symbolic refs, and never have reflogs. They also cannot be updated through the normal ref update machinery. Instead, they are updated by directly writing to the files. However, they can be read as if they were refs, so git rev-parse MERGE_HEAD will work.

rebase

To replay a commits from a branch to a different base, and reset the head of that branch to the result.

refspec

A refspec is used by fetch and push to describe the mapping between remote ref and local ref.

rewind

To throw away part of the development, i.e. to assign the head to an earlier revision.

submodule

A repository that holds the history of a separate project inside another repository (the latter of which called superproject)

superproject

A repository that references repositories of other projects in its working tree as submodules. The superproject knows about the names of (but does not hold copies of) commit objects of the contained submodules.

tag

A tag is a special ref used as to mark a commit in the history.
A ref under refs/tag/ namespace that points to an object of an arbitrary type (typically a tag points to either a tag or a commit object).
In contrast to a head, a tag is not updated by the commit command.
A tag is most typically used to mark a particular point in the commit ancestry chain.

tree

Either a working tree or a tree object together with the dependent blob and tree objects (i.e. a stored representation of a working tree).

unmerged index

An index which contains unmerged index entries.

Index